| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /**
- * JS-grammar torture fixture (javascript variant: no type machinery, JS class
- * fields use `field_definition` with a `property` field).
- */
- import { EventEmitter } from 'node:events';
- const { promisify } = require('node:util');
- /** Legacy prototype-style helper. */
- function legacyHelper(a, b) {
- return a + b;
- }
- const arrow = (x) => legacyHelper(x, 1);
- class Widget extends EventEmitter {
- static registry = new Map();
- #privateField = 1;
- label = 'w';
- onTick = () => {
- this.render();
- };
- wrapped = debounce(function () {
- expensive();
- }, 50);
- constructor(opts) {
- super();
- this.opts = opts;
- register(this.onTick);
- }
- render() {
- paint(this.label);
- }
- static create(opts) {
- return new Widget(opts);
- }
- }
- // AMD-style wrapper — anonymous, but inner functions must still surface.
- (function () {
- function hiddenInner() {
- return 7;
- }
- hiddenInner();
- })();
- module.exports.makeWidget = function makeWidget(opts) {
- return Widget.create(opts);
- };
- // Vuex module shape (store-file signals: mutations + actions + getters).
- const mutations = {
- SET_USER(state, user) {
- state.user = user;
- },
- };
- const actions = {
- async loadUser({ commit }, id) {
- const user = await fetchUser(id);
- commit('SET_USER', user);
- },
- };
- export default {
- namespaced: true,
- state: () => ({ user: null }),
- mutations,
- actions,
- getters: {
- userName(state) {
- return state.user?.name;
- },
- },
- };
|