7 lines
73 KiB
Text
7 lines
73 KiB
Text
{
|
|
"version": 3,
|
|
"sources": ["../dist/index.js", "../dist/nodes/index.js", "../dist/nodes/BaseJSNode.js", "../dist/nodes/ArrayExpression.js", "../dist/utils/index.js", "../dist/nodes/ArrowFunctionExpression.js", "../dist/nodes/AssignmentExpression.js", "../dist/nodes/BinaryExpression.js", "../dist/nodes/BlockStatement.js", "../dist/nodes/BreakStatement.js", "../dist/nodes/CallExpression.js", "../dist/nodes/ConditionalExpression.js", "../dist/nodes/ContinueStatement.js", "../dist/nodes/ExpressionStatement.js", "../dist/nodes/ForOfStatement.js", "../dist/nodes/ForStatement.js", "../dist/nodes/FunctionDeclaration.js", "../dist/nodes/FunctionExpression.js", "../dist/nodes/Identifier.js", "../dist/nodes/IfStatement.js", "../dist/nodes/Literal.js", "../dist/nodes/LogicalExpression.js", "../dist/nodes/MemberExpression.js", "../dist/nodes/NewExpression.js", "../dist/nodes/ObjectExpression.js", "../dist/nodes/Property.js", "../dist/nodes/ReturnStatement.js", "../dist/nodes/SequenceExpression.js", "../dist/nodes/SwitchCase.js", "../dist/nodes/SwitchStatement.js", "../dist/nodes/TemplateLiteral.js", "../dist/nodes/ThisExpression.js", "../dist/nodes/ThrowStatement.js", "../dist/nodes/TryStatement.js", "../dist/nodes/UnaryExpression.js", "../dist/nodes/UpdateExpression.js", "../dist/nodes/VariableDeclaration.js", "../dist/nodes/WhileStatement.js", "../dist/visitor.js", "../dist/main.js"],
|
|
"sourcesContent": ["import Jinter from './main.js';\nexport * as Nodes from './nodes/index.js';\nexport * as Utils from './utils/index.js';\nexport { Jinter };\nexport default Jinter;\n", "// This file is auto-generated by ./scripts/build-nodes-map.js.\nexport { default as ArrayExpression } from './ArrayExpression.js';\nexport { default as ArrowFunctionExpression } from './ArrowFunctionExpression.js';\nexport { default as AssignmentExpression } from './AssignmentExpression.js';\nexport { default as BinaryExpression } from './BinaryExpression.js';\nexport { default as BlockStatement } from './BlockStatement.js';\nexport { default as BreakStatement } from './BreakStatement.js';\nexport { default as CallExpression } from './CallExpression.js';\nexport { default as ConditionalExpression } from './ConditionalExpression.js';\nexport { default as ContinueStatement } from './ContinueStatement.js';\nexport { default as ExpressionStatement } from './ExpressionStatement.js';\nexport { default as ForOfStatement } from './ForOfStatement.js';\nexport { default as ForStatement } from './ForStatement.js';\nexport { default as FunctionDeclaration } from './FunctionDeclaration.js';\nexport { default as FunctionExpression } from './FunctionExpression.js';\nexport { default as Identifier } from './Identifier.js';\nexport { default as IfStatement } from './IfStatement.js';\nexport { default as Literal } from './Literal.js';\nexport { default as LogicalExpression } from './LogicalExpression.js';\nexport { default as MemberExpression } from './MemberExpression.js';\nexport { default as NewExpression } from './NewExpression.js';\nexport { default as ObjectExpression } from './ObjectExpression.js';\nexport { default as Property } from './Property.js';\nexport { default as ReturnStatement } from './ReturnStatement.js';\nexport { default as SequenceExpression } from './SequenceExpression.js';\nexport { default as SwitchCase } from './SwitchCase.js';\nexport { default as SwitchStatement } from './SwitchStatement.js';\nexport { default as TemplateLiteral } from './TemplateLiteral.js';\nexport { default as ThisExpression } from './ThisExpression.js';\nexport { default as ThrowStatement } from './ThrowStatement.js';\nexport { default as TryStatement } from './TryStatement.js';\nexport { default as UnaryExpression } from './UnaryExpression.js';\nexport { default as UpdateExpression } from './UpdateExpression.js';\nexport { default as VariableDeclaration } from './VariableDeclaration.js';\nexport { default as WhileStatement } from './WhileStatement.js';\n", "export default class BaseJSNode {\n constructor(node, visitor) {\n this.node = node;\n this.visitor = visitor;\n }\n run() { }\n}\n", "import BaseNode from './BaseJSNode.js';\nexport default class ArrayExpression extends BaseNode {\n run() {\n return this.node.elements.map((el) => this.visitor.visitNode(el));\n }\n}\n", "export const namedFunction = (name, fn) => Object.defineProperty(fn, 'name', { value: name });\nexport class JinterError extends Error {\n constructor(message, info) {\n super(message);\n if (info) {\n this.info = info;\n }\n }\n}\n", "import { namedFunction } from '../utils/index.js';\nimport BaseJSNode from './BaseJSNode.js';\nexport default class ArrowFunctionExpression extends BaseJSNode {\n run() {\n const { params, body } = this.node;\n // @TODO: Handle other types of params and pass them directly to next node instead of saving them in the global scope\n const fn = namedFunction('anonymous function', (args) => {\n let index = 0;\n for (const param of params) {\n this.visitor.visitNode(param);\n if (param.type === 'Identifier') {\n this.visitor.scope.set(param.name, args[index]);\n }\n else {\n console.warn('Unhandled param type', param.type);\n }\n index++;\n }\n return this.visitor.visitNode(body);\n });\n return fn;\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class AssignmentExpression extends BaseJSNode {\n run() {\n const operator = this.node.operator;\n const right_node = this.visitor.visitNode(this.node.right);\n switch (operator) {\n case '=':\n if (this.node.left.type === 'MemberExpression') {\n const obj = this.visitor.visitNode(this.node.left.object);\n const prop = this.visitor.visitNode(this.node.left.property);\n return obj[prop] = right_node;\n }\n else if (this.node.left.type === 'Identifier') {\n this.visitor.scope.set(this.node.left.name, right_node);\n return this.visitor.scope.get(this.node.left.name);\n }\n console.warn('Unhandled left node', this.node.left);\n break;\n case '+=':\n if (this.node.left.type === 'MemberExpression') {\n const obj = this.visitor.visitNode(this.node.left.object);\n const prop = this.visitor.visitNode(this.node.left.property);\n return obj[prop] += right_node;\n }\n else if (this.node.left.type === 'Identifier') {\n const result = this.visitor.visitNode(this.node.left) + right_node;\n this.visitor.scope.set(this.node.left.name, result);\n return this.visitor.scope.get(this.node.left.name);\n }\n console.warn('Unhandled left node', this.node.left);\n break;\n case '-=':\n if (this.node.left.type === 'MemberExpression') {\n const obj = this.visitor.visitNode(this.node.left.object);\n const prop = this.visitor.visitNode(this.node.left.property);\n return obj[prop] -= right_node;\n }\n else if (this.node.left.type === 'Identifier') {\n const result = this.visitor.visitNode(this.node.left) - right_node;\n this.visitor.scope.set(this.node.left.name, result);\n return this.visitor.scope.get(this.node.left.name);\n }\n console.warn('Unhandled left node', this.node.left);\n break;\n case '*=':\n if (this.node.left.type === 'MemberExpression') {\n const obj = this.visitor.visitNode(this.node.left.object);\n const prop = this.visitor.visitNode(this.node.left.property);\n return obj[prop] *= right_node;\n }\n else if (this.node.left.type === 'Identifier') {\n const result = this.visitor.visitNode(this.node.left) * right_node;\n this.visitor.scope.set(this.node.left.name, result);\n return this.visitor.scope.get(this.node.left.name);\n }\n console.warn('Unhandled left node', this.node.left);\n break;\n case '/=':\n if (this.node.left.type === 'MemberExpression') {\n const obj = this.visitor.visitNode(this.node.left.object);\n const prop = this.visitor.visitNode(this.node.left.property);\n return obj[prop] /= right_node;\n }\n else if (this.node.left.type === 'Identifier') {\n const result = this.visitor.visitNode(this.node.left) / right_node;\n this.visitor.scope.set(this.node.left.name, result);\n return this.visitor.scope.get(this.node.left.name);\n }\n console.warn('Unhandled left node', this.node.left);\n break;\n case '%=':\n if (this.node.left.type === 'MemberExpression') {\n const obj = this.visitor.visitNode(this.node.left.object);\n const prop = this.visitor.visitNode(this.node.left.property);\n return obj[prop] %= right_node;\n }\n else if (this.node.left.type === 'Identifier') {\n const result = this.visitor.visitNode(this.node.left) % right_node;\n this.visitor.scope.set(this.node.left.name, result);\n return this.visitor.scope.get(this.node.left.name);\n }\n console.warn('Unhandled left node', this.node.left);\n break;\n case '**=':\n if (this.node.left.type === 'MemberExpression') {\n const obj = this.visitor.visitNode(this.node.left.object);\n const prop = this.visitor.visitNode(this.node.left.property);\n return obj[prop] **= right_node;\n }\n else if (this.node.left.type === 'Identifier') {\n const result = this.visitor.visitNode(this.node.left) ** right_node;\n this.visitor.scope.set(this.node.left.name, result);\n return this.visitor.scope.get(this.node.left.name);\n }\n console.warn('Unhandled left node', this.node.left);\n break;\n case '<<=':\n if (this.node.left.type === 'MemberExpression') {\n const obj = this.visitor.visitNode(this.node.left.object);\n const prop = this.visitor.visitNode(this.node.left.property);\n return obj[prop] <<= right_node;\n }\n else if (this.node.left.type === 'Identifier') {\n const result = this.visitor.visitNode(this.node.left) << right_node;\n this.visitor.scope.set(this.node.left.name, result);\n return this.visitor.scope.get(this.node.left.name);\n }\n console.warn('Unhandled left node', this.node.left);\n break;\n case '>>=':\n if (this.node.left.type === 'MemberExpression') {\n const obj = this.visitor.visitNode(this.node.left.object);\n const prop = this.visitor.visitNode(this.node.left.property);\n return obj[prop] >>= right_node;\n }\n else if (this.node.left.type === 'Identifier') {\n const result = this.visitor.visitNode(this.node.left) >> right_node;\n this.visitor.scope.set(this.node.left.name, result);\n return this.visitor.scope.get(this.node.left.name);\n }\n console.warn('Unhandled left node', this.node.left);\n break;\n case '>>>=':\n if (this.node.left.type === 'MemberExpression') {\n const obj = this.visitor.visitNode(this.node.left.object);\n const prop = this.visitor.visitNode(this.node.left.property);\n return obj[prop] >>>= right_node;\n }\n else if (this.node.left.type === 'Identifier') {\n const result = this.visitor.visitNode(this.node.left) >>> right_node;\n this.visitor.scope.set(this.node.left.name, result);\n return this.visitor.scope.get(this.node.left.name);\n }\n console.warn('Unhandled left node', this.node.left);\n break;\n case '&=':\n if (this.node.left.type === 'MemberExpression') {\n const obj = this.visitor.visitNode(this.node.left.object);\n const prop = this.visitor.visitNode(this.node.left.property);\n return obj[prop] &= right_node;\n }\n else if (this.node.left.type === 'Identifier') {\n const result = this.visitor.visitNode(this.node.left) & right_node;\n this.visitor.scope.set(this.node.left.name, result);\n return this.visitor.scope.get(this.node.left.name);\n }\n console.warn('Unhandled left node', this.node.left);\n break;\n }\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class BinaryExpression extends BaseJSNode {\n run() {\n const operator = this.node.operator;\n const left_node = this.visitor.visitNode(this.node.left);\n const right_node = this.visitor.visitNode(this.node.right);\n switch (operator) {\n case '!=':\n return left_node != right_node;\n case '!==':\n return left_node !== right_node;\n case '%':\n return left_node % right_node;\n case '&':\n return left_node & right_node;\n case '*':\n return left_node * right_node;\n case '**':\n return left_node ** right_node;\n case '+':\n return left_node + right_node;\n case '-':\n return left_node - right_node;\n case '/':\n return left_node / right_node;\n case '<':\n return left_node < right_node;\n case '<<':\n return left_node << right_node;\n case '<=':\n return left_node <= right_node;\n case '==':\n return left_node == right_node;\n case '===':\n return left_node === right_node;\n case '>':\n return left_node > right_node;\n case '>=':\n return left_node >= right_node;\n case '>>':\n return left_node >> right_node;\n case '>>>':\n return left_node >>> right_node;\n case '^':\n return left_node ^ right_node;\n case '|':\n return left_node | right_node;\n case 'in':\n return left_node in right_node;\n case 'instanceof':\n return left_node instanceof right_node;\n }\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class BlockStatement extends BaseJSNode {\n run() {\n for (const stmt of this.node.body) {\n const result = this.visitor.visitNode(stmt);\n if (stmt.type === 'ReturnStatement')\n return result;\n if (result === 'break' || result === 'continue')\n return result;\n if ((stmt.type === 'WhileStatement' ||\n stmt.type === 'IfStatement' ||\n stmt.type === 'ForStatement' ||\n stmt.type === 'TryStatement') &&\n !!result) {\n return result;\n }\n }\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class BreakStatement extends BaseJSNode {\n run() {\n // @TODO: Parse label\n return 'break';\n }\n}\n", "var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CallExpression_instances, _CallExpression_throwError, _CallExpression_getCalleeString;\nimport BaseJSNode from './BaseJSNode.js';\nimport { JinterError } from '../utils/index.js';\nexport default class CallExpression extends BaseJSNode {\n constructor() {\n super(...arguments);\n _CallExpression_instances.add(this);\n }\n run() {\n let exp_object;\n let exp_property;\n if (this.node.callee.type === 'MemberExpression') {\n exp_object = this.visitor.getName(this.node.callee.object);\n exp_property = this.visitor.getName(this.node.callee.property);\n }\n else if (this.node.callee.type === 'Identifier') {\n exp_property = this.node.callee.name;\n }\n // Obj.fn(...);\n if (exp_object && this.visitor.listeners[exp_object]) {\n const cb = this.visitor.listeners[exp_object](this.node, this.visitor);\n if (cb !== '__continue_exec') {\n return cb;\n }\n }\n // ?.fn(...);\n if (exp_property && exp_property !== 'toString' && this.visitor.listeners[exp_property]) {\n const cb = this.visitor.listeners[exp_property](this.node, this.visitor);\n if (cb !== '__continue_exec') {\n return cb;\n }\n }\n if (this.node.callee.type === 'MemberExpression') {\n if (Builtins.has(this.node, this.visitor)) {\n return Builtins.execute(this.node, this.visitor);\n }\n const obj = this.visitor.visitNode(this.node.callee.object);\n const prop = this.node.callee.computed ? this.visitor.visitNode(this.node.callee.property) : this.visitor.getName(this.node.callee.property);\n const args = this.node.arguments.map((arg) => this.visitor.visitNode(arg));\n if (!obj)\n __classPrivateFieldGet(this, _CallExpression_instances, \"m\", _CallExpression_throwError).call(this);\n if (typeof obj[prop] !== 'function')\n __classPrivateFieldGet(this, _CallExpression_instances, \"m\", _CallExpression_throwError).call(this);\n if (obj[prop].toString().includes('[native code]'))\n return obj[prop](...args);\n return obj[prop](args);\n }\n const fn = this.visitor.visitNode(this.node.callee);\n const args = this.node.arguments.map((arg) => this.visitor.visitNode(arg));\n if (typeof fn !== 'function')\n __classPrivateFieldGet(this, _CallExpression_instances, \"m\", _CallExpression_throwError).call(this);\n return fn(args);\n }\n}\n_CallExpression_instances = new WeakSet(), _CallExpression_throwError = function _CallExpression_throwError() {\n if (this.node.callee.type === 'MemberExpression' || this.node.callee.type === 'Identifier') {\n const callee_string = __classPrivateFieldGet(this, _CallExpression_instances, \"m\", _CallExpression_getCalleeString).call(this, this.node.callee);\n throw new JinterError(`${callee_string} is not a function`);\n }\n else if (this.node.callee.type === 'SequenceExpression') {\n const call = [];\n const items = [];\n call.push('(');\n this.node.callee.expressions.forEach((expr) => {\n if (expr.type === 'Literal') {\n items.push(expr.raw || '');\n }\n else if (expr.type === 'Identifier') {\n items.push(expr.name);\n }\n else if (expr.type === 'MemberExpression') {\n if (expr.computed) {\n items.push(`${this.visitor.getName(expr.object)}[${this.visitor.getName(expr.property) || '...'}]`);\n }\n else {\n items.push(`${this.visitor.getName(expr.object)}.${this.visitor.getName(expr.property)}`);\n }\n }\n });\n call.push(items.join(', '));\n call.push(')');\n throw new JinterError(`${call.join('')} is not a function`);\n }\n}, _CallExpression_getCalleeString = function _CallExpression_getCalleeString(node) {\n if (node.type === 'Identifier') {\n return node.name;\n }\n else if (node.type === 'MemberExpression') {\n const object_string = __classPrivateFieldGet(this, _CallExpression_instances, \"m\", _CallExpression_getCalleeString).call(this, node.object);\n const property_string = node.computed ? `[${this.visitor.getName(node.property) || '...'}]` : `.${this.visitor.getName(node.property)}`;\n return `${object_string}${property_string}`;\n }\n return '<unknown>';\n};\nclass Builtins {\n static has(node, visitor) {\n var _a;\n if (node.callee.type === 'MemberExpression') {\n return !!((_a = this.builtins) === null || _a === void 0 ? void 0 : _a[visitor.getName(node.callee.property) || '']);\n }\n return false;\n }\n static execute(node, visitor) {\n if (node.callee.type === 'MemberExpression') {\n return this.builtins[visitor.getName(node.callee.property) || ''](node, visitor);\n }\n }\n}\nBuiltins.builtins = {\n // Override the forEach method so that the \"this\" arg is set correctly\n forEach: (node, visitor) => {\n const args = node.arguments.map((arg) => visitor.visitNode(arg));\n if (node.callee.type === 'MemberExpression') {\n const arr = visitor.visitNode(node.callee.object);\n // Set forEach's \u201Cthis\u201D arg\n if (args.length > 1) {\n visitor.scope.set('_this', args.slice(-1)[0]);\n }\n // Execute callback function\n let index = 0;\n for (const element of arr) {\n args[0]([element, index++, arr]);\n }\n }\n else {\n console.warn('Unhandled callee type:', node.callee.type);\n }\n },\n // Also override the toString method so that it stringifies the correct object\n toString: (node, visitor) => {\n if (node.callee.type === 'MemberExpression') {\n return visitor.visitNode(node.callee.object).toString();\n }\n }\n};\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class ConditionalExpression extends BaseJSNode {\n run() {\n const { test, consequent, alternate } = this.node;\n const check = this.visitor.visitNode(test);\n if (check) {\n return this.visitor.visitNode(consequent);\n }\n return this.visitor.visitNode(alternate);\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class ContinueStatement extends BaseJSNode {\n run() {\n return 'continue';\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class ExpressionStatement extends BaseJSNode {\n run() {\n return this.visitor.visitNode(this.node.expression);\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class ForOfStatement extends BaseJSNode {\n run() {\n this.visitor.visitNode(this.node.left);\n const right_node = this.visitor.visitNode(this.node.right);\n for (const el of right_node) {\n if (this.node.left.type === 'VariableDeclaration' && this.node.left.declarations[0].id.type === 'Identifier') {\n this.visitor.scope.set(this.node.left.declarations[0].id.name, el);\n }\n else if (this.node.left.type === 'VariableDeclaration' && this.node.left.declarations[0].id.type === 'ObjectPattern') {\n for (const propert of this.node.left.declarations[0].id.properties) {\n if (propert.type === 'Property' && (propert.value.type === 'Identifier' && propert.key.type === 'Identifier')) {\n this.visitor.scope.set(propert.value.name, el[propert.key.name]);\n }\n }\n }\n const body = this.visitor.visitNode(this.node.body);\n if (body === 'break') {\n break;\n }\n if (body === 'continue') {\n continue;\n }\n if (body && this.node.body.type !== 'ExpressionStatement') {\n return body;\n }\n }\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class ForStatement extends BaseJSNode {\n run() {\n if (this.node.init) {\n this.visitor.visitNode(this.node.init);\n }\n const test = () => {\n return this.node.test\n ? this.visitor.visitNode(this.node.test)\n : true;\n };\n for (;;) {\n const _test = test();\n if (!_test) {\n break;\n }\n const body = this.visitor.visitNode(this.node.body);\n if (body === 'continue') {\n continue;\n }\n if (body === 'break') {\n break;\n }\n if (this.node.update) {\n this.visitor.visitNode(this.node.update);\n }\n if (body && this.node.body.type !== 'ExpressionStatement') {\n return body;\n }\n }\n }\n}\n", "import { namedFunction } from '../utils/index.js';\nimport BaseJSNode from './BaseJSNode.js';\nexport default class FunctionDeclaration extends BaseJSNode {\n run() {\n const { params, body } = this.node;\n const id = this.visitor.visitNode(this.node.id);\n // @TODO: Handle other types of params and pass them directly to next node instead of saving them in the global scope\n const fn = namedFunction(id, (args) => {\n let index = 0;\n for (const param of params) {\n this.visitor.visitNode(param);\n if (param.type === 'Identifier') {\n this.visitor.scope.set(param.name, args[index]);\n }\n else {\n console.warn('Unhandled param type', param.type);\n }\n index++;\n }\n return this.visitor.visitNode(body);\n });\n this.visitor.scope.set(id, fn);\n }\n}\n", "import { namedFunction } from '../utils/index.js';\nimport BaseJSNode from './BaseJSNode.js';\nexport default class FunctionExpression extends BaseJSNode {\n run() {\n const { params, body } = this.node;\n const fn = namedFunction('anonymous function', (args) => {\n let index = 0;\n for (const param of params) {\n this.visitor.visitNode(param);\n if (param.type === 'Identifier') {\n this.visitor.scope.set(param.name, args[index]);\n }\n else {\n console.warn('Unhandled param type', param.type);\n }\n index++;\n }\n return this.visitor.visitNode(body);\n });\n return fn;\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class Identifier extends BaseJSNode {\n run() {\n if (this.visitor.listeners[this.node.name]) {\n const cb = this.visitor.listeners[this.node.name](this.node, this.visitor);\n if (cb !== '__continue_exec') {\n return cb;\n }\n }\n if (this.visitor.scope.has(this.node.name))\n return this.visitor.scope.get(this.node.name);\n return this.node.name;\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class IfStatement extends BaseJSNode {\n run() {\n const test = this.visitor.visitNode(this.node.test);\n if (test) {\n return this.visitor.visitNode(this.node.consequent);\n }\n else if (this.node.alternate) {\n return this.visitor.visitNode(this.node.alternate);\n }\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class Literal extends BaseJSNode {\n run() {\n return this.node.value;\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class LogicalExpression extends BaseJSNode {\n run() {\n const operator = this.node.operator;\n switch (operator) {\n case '&&': {\n const left_side = this.visitor.visitNode(this.node.left);\n if (left_side === true)\n return this.visitor.visitNode(this.node.right);\n return left_side;\n }\n case '||': {\n const left_side = this.visitor.visitNode(this.node.left);\n return left_side || this.visitor.visitNode(this.node.right);\n }\n case '??': {\n const left_side = this.visitor.visitNode(this.node.left);\n return left_side !== null && left_side !== void 0 ? left_side : this.visitor.visitNode(this.node.right);\n }\n }\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class MemberExpression extends BaseJSNode {\n run() {\n const { object, property, computed } = this.node;\n const obj = this.visitor.visitNode(object);\n const prop = computed ? this.visitor.visitNode(property) : this.visitor.getName(property);\n if (prop !== undefined || prop !== null) {\n if (this.visitor.listeners[prop]) {\n const cb = this.visitor.listeners[prop](this.node, this.visitor);\n if (cb !== '__continue_exec') {\n return cb;\n }\n }\n return obj === null || obj === void 0 ? void 0 : obj[prop];\n }\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class NewExpression extends BaseJSNode {\n run() {\n const callee = this.visitor.visitNode(this.node.callee);\n const args = this.node.arguments.map((arg) => this.visitor.visitNode(arg));\n return args.length ? new callee(args) : new callee();\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class ObjectExpression extends BaseJSNode {\n run() {\n let result = {};\n for (const prop of this.node.properties) {\n if (prop.type === 'Property') {\n result = Object.assign(Object.assign({}, result), this.visitor.visitNode(prop));\n }\n else {\n throw new Error(`Unhandled property type: ${prop.type}`);\n }\n }\n return result;\n }\n}\n", "var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Property_instances, _Property_init, _Property_get, _Property_set;\nimport BaseJSNode from './BaseJSNode.js';\nexport default class Property extends BaseJSNode {\n constructor() {\n super(...arguments);\n _Property_instances.add(this);\n }\n run() {\n switch (this.node.kind) {\n case 'init':\n return __classPrivateFieldGet(this, _Property_instances, \"m\", _Property_init).call(this);\n case 'get':\n return __classPrivateFieldGet(this, _Property_instances, \"m\", _Property_get).call(this);\n case 'set':\n return __classPrivateFieldGet(this, _Property_instances, \"m\", _Property_set).call(this);\n default:\n throw new Error(`Unhandled property kind: ${this.node.kind}`);\n }\n }\n}\n_Property_instances = new WeakSet(), _Property_init = function _Property_init() {\n const key = this.node.computed ? this.visitor.visitNode(this.node.key) : this.visitor.getName(this.node.key);\n const value = this.visitor.visitNode(this.node.value);\n if (key) {\n return { [key]: value };\n }\n}, _Property_get = function _Property_get() {\n throw new TypeError('Not implemented: Property.get');\n}, _Property_set = function _Property_set() {\n throw new TypeError('Not implemented: Property.set');\n};\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class ReturnStatement extends BaseJSNode {\n run() {\n if (this.node.argument) {\n return this.visitor.visitNode(this.node.argument);\n }\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class SequenceExpression extends BaseJSNode {\n run() {\n let result;\n for (const expression of this.node.expressions) {\n result = this.visitor.visitNode(expression);\n }\n return result;\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class SwitchCase extends BaseJSNode {\n run() {\n for (const stmt of this.node.consequent) {\n const result = this.visitor.visitNode(stmt);\n if (stmt.type === 'ContinueStatement' || stmt.type === 'BreakStatement') {\n return result;\n }\n }\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class SwitchStatement extends BaseJSNode {\n run() {\n const discriminant = this.visitor.visitNode(this.node.discriminant);\n let matched = false;\n let default_case = -1;\n let index = 0;\n while (true) {\n const _case = this.node.cases[index];\n if (matched) {\n const result = this.visitor.visitNode(_case);\n // If it's a break then stop here.\n if (result === 'break') {\n break;\n }\n // Switch statements do not support continue, but it can be used when inside a while/for loop.\n if (result === 'continue') {\n return result;\n }\n ++index;\n if (index >= this.node.cases.length) {\n index = 0;\n break;\n }\n else {\n continue;\n }\n }\n matched = _case && (discriminant === this.visitor.visitNode(_case.test));\n // Ran through all cases and checked everything, break the loop.\n if (matched === undefined && index > this.node.cases.length)\n break;\n // Save the default case so we can get back to it later.\n if (_case && !matched && !_case.test) {\n default_case = index;\n index += 1;\n continue;\n }\n // Ran through all cases but no match \u2014 run default case.\n if (!_case && !matched && default_case !== -1) {\n matched = true;\n index = default_case;\n continue;\n }\n if (!matched) {\n ++index;\n }\n }\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class TemplateLiteral extends BaseJSNode {\n run() {\n let result = '';\n for (let i = 0; i < this.node.quasis.length; ++i) {\n const quasi = this.node.quasis[i];\n if (quasi.type === 'TemplateElement') {\n if (quasi.value.cooked === null) {\n throw new Error(`Invalid template literal: ${quasi.value.raw}`);\n }\n if (quasi.value.cooked !== undefined) {\n result += quasi.value.cooked;\n }\n if (!quasi.tail) {\n const expr = this.node.expressions[i];\n if (expr !== undefined) {\n // This will automatically stringify the node's return value, since result is a string.\n result += this.visitor.visitNode(expr);\n }\n else {\n throw new Error(`Expected expression after: ${quasi.value}`);\n }\n }\n }\n else {\n throw new Error(`Unhandled quasi type: ${quasi.type}`);\n }\n }\n return result;\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class ThisExpression extends BaseJSNode {\n run() {\n return this.visitor.scope.get('_this');\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class ThrowStatement extends BaseJSNode {\n run() {\n const arg = this.visitor.visitNode(this.node.argument);\n throw arg;\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class TryStatement extends BaseJSNode {\n run() {\n try {\n return this.visitor.visitNode(this.node.block);\n }\n catch (e) {\n if (this.node.handler) {\n if (this.node.handler.param && this.node.handler.param.type === 'Identifier') {\n this.visitor.scope.set(this.node.handler.param.name, e);\n }\n return this.visitor.visitNode(this.node.handler.body);\n }\n }\n finally {\n this.visitor.visitNode(this.node.finalizer);\n }\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class UnaryExpression extends BaseJSNode {\n run() {\n const operator = this.node.operator;\n switch (operator) {\n case '-': {\n const arg = this.visitor.visitNode(this.node.argument);\n return -arg;\n }\n case '+': {\n const arg = this.visitor.visitNode(this.node.argument);\n return +arg;\n }\n case '!': {\n const arg = this.visitor.visitNode(this.node.argument);\n return !arg;\n }\n case '~': {\n const arg = this.visitor.visitNode(this.node.argument);\n return ~arg;\n }\n case 'void': {\n this.visitor.visitNode(this.node.argument);\n return undefined;\n }\n case 'typeof': {\n const arg = this.visitor.visitNode(this.node.argument);\n return typeof arg;\n }\n case 'delete': {\n if (this.node.argument.type === 'MemberExpression') {\n const obj = this.visitor.visitNode(this.node.argument.object);\n const prop = this.node.argument.computed ? this.visitor.visitNode(this.node.argument.property) : this.visitor.getName(this.node.argument.property);\n return delete obj[prop];\n }\n else if (this.node.argument.type === 'Identifier') {\n return this.visitor.scope.delete(this.node.argument.name);\n }\n return true;\n }\n default:\n console.warn('Unhandled UnaryExpression operator', operator);\n }\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class UpdateExpression extends BaseJSNode {\n run() {\n const operator = this.node.operator;\n switch (operator) {\n case '++':\n {\n if (this.node.argument.type === 'MemberExpression') {\n const target_node = this.visitor.visitNode(this.node.argument.object);\n return target_node[this.visitor.visitNode(this.node.argument.property)]++;\n }\n else if (this.node.argument.type === 'Identifier') {\n let target_node = this.visitor.visitNode(this.node.argument);\n this.visitor.scope.set(this.node.argument.name, target_node + 1);\n return this.node.prefix ? ++target_node : target_node;\n }\n }\n break;\n case '--':\n {\n if (this.node.argument.type === 'MemberExpression') {\n const target_node = this.visitor.visitNode(this.node.argument.object);\n return target_node[this.visitor.visitNode(this.node.argument.property)]--;\n }\n else if (this.node.argument.type === 'Identifier') {\n let target_node = this.visitor.visitNode(this.node.argument);\n this.visitor.scope.set(this.node.argument.name, target_node - 1);\n return this.node.prefix ? --target_node : target_node;\n }\n }\n break;\n }\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class VariableDeclaration extends BaseJSNode {\n run() {\n // TODO: Parse kind\n this.node.declarations.forEach((declar) => {\n const { id, init } = declar;\n const key = this.visitor.getName(id);\n const value = init\n ? this.visitor.visitNode(init)\n : undefined;\n if (key)\n this.visitor.scope.set(key, value);\n if (typeof value === 'object' && value !== null)\n this.visitor.scope.set('_this', value);\n });\n }\n}\n", "import BaseJSNode from './BaseJSNode.js';\nexport default class WhileStatement extends BaseJSNode {\n run() {\n while (this.visitor.visitNode(this.node.test)) {\n const body = this.visitor.visitNode(this.node.body);\n if (body === 'break')\n break;\n if (body === 'continue')\n continue;\n if (body)\n return body;\n }\n }\n}\n", "var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Visitor_instances, _Visitor_getNode;\nimport * as Nodes from './nodes/index.js';\nexport default class Visitor {\n constructor() {\n _Visitor_instances.add(this);\n this.scope = new Map();\n this.listeners = {};\n this.ast = [];\n }\n setAST(ast) {\n this.ast = ast;\n }\n run() {\n let result;\n for (const node of this.ast) {\n result = this.visitNode(node);\n }\n return result;\n }\n /**\n * Visits a given node and executes it.\n */\n visitNode(node) {\n if (!node)\n return null;\n const target_node = __classPrivateFieldGet(this, _Visitor_instances, \"m\", _Visitor_getNode).call(this, node.type);\n if (target_node) {\n const instance = new target_node(node, this);\n return instance.run();\n }\n }\n /**\n * Gets the name of a node.\n * @param node - The target node.\n */\n getName(node) {\n if (node.type === 'Identifier')\n return node.name;\n else if (node.type === 'Literal')\n return node.value;\n }\n /**\n * Listens for node calls. Can be used to override default behavior or add new functionality.\n * @param node_name - The node to listen for.\n * @param listener - The callback function.\n */\n on(node_name, listener) {\n this.listeners[node_name] = listener;\n }\n}\n_Visitor_instances = new WeakSet(), _Visitor_getNode = function _Visitor_getNode(type) {\n const node = Nodes[type];\n if (!node) {\n console.warn('[JINTER]:', `JavaScript node \"${type}\" not implemented!\\nIf this is causing unexpected behavior, please report it at https://github.com/LuanRT/Jinter/issues/new`);\n }\n return node;\n};\n", "var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Jinter_ast;\nimport Visitor from './visitor.js';\nimport { parse } from 'acorn';\nimport { JinterError } from './utils/index.js';\nexport default class Jinter {\n constructor() {\n _Jinter_ast.set(this, []);\n this.visitor = new Visitor();\n this.scope = this.visitor.scope;\n this.scope.set('print', (args) => console.log(...args));\n this.defineObject('console', console);\n this.defineObject('Math', Math);\n this.defineObject('String', String);\n this.defineObject('Array', Array);\n this.defineObject('Date', Date);\n }\n defineObject(name, obj) {\n this.visitor.on(name, (node, visitor) => {\n if (node.type === 'Identifier')\n return obj;\n if (node.type === 'CallExpression' && node.callee.type === 'MemberExpression') {\n const prop = visitor.visitNode(node.callee.property);\n const args = node.arguments.map((arg) => visitor.visitNode(arg));\n const callable = obj[prop];\n if (!callable)\n return '__continue_exec';\n return callable.apply(obj, args);\n }\n return '__continue_exec';\n });\n }\n /**\n * Generates an AST from the input.\n */\n parseScript(input) {\n try {\n return parse(input, { ecmaVersion: 2020 });\n }\n catch (e) {\n throw new JinterError(e.message);\n }\n }\n /**\n * Evaluates the program.\n * @returns The result of the last statement in the program.\n */\n evaluate(input) {\n try {\n const program = parse(input, { ecmaVersion: 2020 });\n __classPrivateFieldSet(this, _Jinter_ast, program.body, \"f\");\n }\n catch (e) {\n throw new JinterError(e.message);\n }\n this.visitor.setAST(__classPrivateFieldGet(this, _Jinter_ast, \"f\"));\n return this.visitor.run();\n }\n}\n_Jinter_ast = new WeakMap();\n"],
|
|
"mappings": "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",
|
|
"names": ["args", "_CallExpression_throwError", "_CallExpression_getCalleeString", "__classPrivateFieldGet", "_Property_init", "_Property_get", "_Property_set", "__classPrivateFieldGet", "_Visitor_getNode", "__classPrivateFieldGet"]
|
|
}
|