UNPKG

ember-legacy-class-transform

Version:
89 lines (77 loc) 11.2 kB
import { APPEND_OPCODES } from '../../opcodes'; import { FALSE_REFERENCE, TRUE_REFERENCE } from '../../references'; import { ConcatReference } from '../expressions/concat'; APPEND_OPCODES.add(1 /* Helper */, function (vm, _ref) { var _helper = _ref.op1; var stack = vm.stack; var helper = vm.constants.getFunction(_helper); var args = stack.pop(); var value = helper(vm, args); args.clear(); vm.stack.push(value); }); APPEND_OPCODES.add(2 /* Function */, function (vm, _ref2) { var _function = _ref2.op1; var func = vm.constants.getFunction(_function); vm.stack.push(func(vm)); }); APPEND_OPCODES.add(5 /* GetVariable */, function (vm, _ref3) { var symbol = _ref3.op1; var expr = vm.referenceForSymbol(symbol); vm.stack.push(expr); }); APPEND_OPCODES.add(4 /* SetVariable */, function (vm, _ref4) { var symbol = _ref4.op1; var expr = vm.stack.pop(); vm.scope().bindSymbol(symbol, expr); }); APPEND_OPCODES.add(70 /* ResolveMaybeLocal */, function (vm, _ref5) { var _name = _ref5.op1; var name = vm.constants.getString(_name); var locals = vm.scope().getPartialMap(); var ref = locals[name]; if (ref === undefined) { ref = vm.getSelf().get(name); } vm.stack.push(ref); }); APPEND_OPCODES.add(19 /* RootScope */, function (vm, _ref6) { var symbols = _ref6.op1, bindCallerScope = _ref6.op2; vm.pushRootScope(symbols, !!bindCallerScope); }); APPEND_OPCODES.add(6 /* GetProperty */, function (vm, _ref7) { var _key = _ref7.op1; var key = vm.constants.getString(_key); var expr = vm.stack.pop(); vm.stack.push(expr.get(key)); }); APPEND_OPCODES.add(7 /* PushBlock */, function (vm, _ref8) { var _block = _ref8.op1; var block = _block ? vm.constants.getBlock(_block) : null; vm.stack.push(block); }); APPEND_OPCODES.add(8 /* GetBlock */, function (vm, _ref9) { var _block = _ref9.op1; vm.stack.push(vm.scope().getBlock(_block)); }); APPEND_OPCODES.add(9 /* HasBlock */, function (vm, _ref10) { var _block = _ref10.op1; var hasBlock = !!vm.scope().getBlock(_block); vm.stack.push(hasBlock ? TRUE_REFERENCE : FALSE_REFERENCE); }); APPEND_OPCODES.add(10 /* HasBlockParams */, function (vm, _ref11) { var _block = _ref11.op1; var block = vm.scope().getBlock(_block); var hasBlockParams = block && block.symbolTable.parameters.length; vm.stack.push(hasBlockParams ? TRUE_REFERENCE : FALSE_REFERENCE); }); APPEND_OPCODES.add(11 /* Concat */, function (vm, _ref12) { var count = _ref12.op1; var out = []; for (var i = count; i > 0; i--) { out.push(vm.stack.pop()); } vm.stack.push(new ConcatReference(out.reverse())); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21waWxlZC9vcGNvZGVzL2V4cHJlc3Npb25zLmpzIl0sIm5hbWVzIjpbIkFQUEVORF9PUENPREVTIiwiRkFMU0VfUkVGRVJFTkNFIiwiVFJVRV9SRUZFUkVOQ0UiLCJDb25jYXRSZWZlcmVuY2UiLCJhZGQiLCJ2bSIsIl9oZWxwZXIiLCJvcDEiLCJzdGFjayIsImhlbHBlciIsImNvbnN0YW50cyIsImdldEZ1bmN0aW9uIiwiYXJncyIsInBvcCIsInZhbHVlIiwiY2xlYXIiLCJwdXNoIiwiX2Z1bmN0aW9uIiwiZnVuYyIsInN5bWJvbCIsImV4cHIiLCJyZWZlcmVuY2VGb3JTeW1ib2wiLCJzY29wZSIsImJpbmRTeW1ib2wiLCJfbmFtZSIsIm5hbWUiLCJnZXRTdHJpbmciLCJsb2NhbHMiLCJnZXRQYXJ0aWFsTWFwIiwicmVmIiwidW5kZWZpbmVkIiwiZ2V0U2VsZiIsImdldCIsInN5bWJvbHMiLCJiaW5kQ2FsbGVyU2NvcGUiLCJvcDIiLCJwdXNoUm9vdFNjb3BlIiwiX2tleSIsImtleSIsIl9ibG9jayIsImJsb2NrIiwiZ2V0QmxvY2siLCJoYXNCbG9jayIsImhhc0Jsb2NrUGFyYW1zIiwic3ltYm9sVGFibGUiLCJwYXJhbWV0ZXJzIiwibGVuZ3RoIiwiY291bnQiLCJvdXQiLCJpIiwicmV2ZXJzZSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsY0FBVCxRQUErQixlQUEvQjtBQUNBLFNBQVNDLGVBQVQsRUFBMEJDLGNBQTFCLFFBQWdELGtCQUFoRDtBQUNBLFNBQVNDLGVBQVQsUUFBZ0MsdUJBQWhDO0FBQ0FILGVBQWVJLEdBQWYsQ0FBbUIsQ0FBbkIsQ0FBcUIsWUFBckIsRUFBbUMsVUFBQ0MsRUFBRCxRQUEwQjtBQUFBLFFBQWRDLE9BQWMsUUFBbkJDLEdBQW1COztBQUN6RCxRQUFJQyxRQUFRSCxHQUFHRyxLQUFmO0FBQ0EsUUFBSUMsU0FBU0osR0FBR0ssU0FBSCxDQUFhQyxXQUFiLENBQXlCTCxPQUF6QixDQUFiO0FBQ0EsUUFBSU0sT0FB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LEVBQTJCQSxHQUEzQixFQUFnQztBQUM1QkQsWUFBSWhDLElBQUosQ0FBU1gsR0FBR0csS0FBSCxDQUFTSyxHQUFULEVBQVQ7QUFDSDtBQUNEUixPQUFHRyxLQUFILENBQVNRLElBQVQsQ0FBYyxJQUFJYixlQUFKLENBQW9CNkMsSUFBSUUsT0FBSixFQUFwQixDQUFkO0FBQ0gsQ0FORCIsImZpbGUiOiJsaWIvY29tcGlsZWQvb3Bjb2Rlcy9leHByZXNzaW9ucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUEVORF9PUENPREVTIH0gZnJvbSAnLi4vLi4vb3Bjb2Rlcyc7XG5pbXBvcnQgeyBGQUxTRV9SRUZFUkVOQ0UsIFRSVUVfUkVGRVJFTkNFIH0gZnJvbSAnLi4vLi4vcmVmZXJlbmNlcyc7XG5pbXBvcnQgeyBDb25jYXRSZWZlcmVuY2UgfSBmcm9tICcuLi9leHByZXNzaW9ucy9jb25jYXQnO1xuQVBQRU5EX09QQ09ERVMuYWRkKDEgLyogSGVscGVyICovLCAodm0sIHsgb3AxOiBfaGVscGVyIH0pID0+IHtcbiAgICBsZXQgc3RhY2sgPSB2bS5zdGFjaztcbiAgICBsZXQgaGVscGVyID0gdm0uY29uc3RhbnRzLmdldEZ1bmN0aW9uKF9oZWxwZXIpO1xuICAgIGxldCBhcmdzID0gc3RhY2sucG9wKCk7XG4gICAgbGV0IHZhbHVlID0gaGVscGVyKHZtLCBhcmdzKTtcbiAgICBhcmdzLmNsZWFyKCk7XG4gICAgdm0uc3RhY2sucHVzaCh2YWx1ZSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCgyIC8qIEZ1bmN0aW9uICovLCAodm0sIHsgb3AxOiBfZnVuY3Rpb24gfSkgPT4ge1xuICAgIGxldCBmdW5jID0gdm0uY29uc3RhbnRzLmdldEZ1bmN0aW9uKF9mdW5jdGlvbik7XG4gICAgdm0uc3RhY2sucHVzaChmdW5jKHZtKSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg1IC8qIEdldFZhcmlhYmxlICovLCAodm0sIHsgb3AxOiBzeW1ib2wgfSkgPT4ge1xuICAgIGxldCBleHByID0gdm0ucmVmZXJlbmNlRm9yU3ltYm9sKHN5bWJvbCk7XG4gICAgdm0uc3RhY2sucHVzaChleHByKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDQgLyogU2V0VmFyaWFibGUgKi8sICh2bSwgeyBvcDE6IHN5bWJvbCB9KSA9PiB7XG4gICAgbGV0IGV4cHIgPSB2bS5zdGFjay5wb3AoKTtcbiAgICB2bS5zY29wZSgpLmJpbmRTeW1ib2woc3ltYm9sLCBleHByKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDcwIC8qIFJlc29sdmVNYXliZUxvY2FsICovLCAodm0sIHsgb3AxOiBfbmFtZSB9KSA9PiB7XG4gICAgbGV0IG5hbWUgPSB2bS5jb25zdGFudHMuZ2V0U3RyaW5nKF9uYW1lKTtcbiAgICBsZXQgbG9jYWxzID0gdm0uc2NvcGUoKS5nZXRQYXJ0aWFsTWFwKCk7XG4gICAgbGV0IHJlZiA9IGxvY2Fsc1tuYW1lXTtcbiAgICBpZiAocmVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVmID0gdm0uZ2V0U2VsZigpLmdldChuYW1lKTtcbiAgICB9XG4gICAgdm0uc3RhY2sucHVzaChyZWYpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoMTkgLyogUm9vdFNjb3BlICovLCAodm0sIHsgb3AxOiBzeW1ib2xzLCBvcDI6IGJpbmRDYWxsZXJTY29wZSB9KSA9PiB7XG4gICAgdm0ucHVzaFJvb3RTY29wZShzeW1ib2xzLCAhIWJpbmRDYWxsZXJTY29wZSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2IC8qIEdldFByb3BlcnR5ICovLCAodm0sIHsgb3AxOiBfa2V5IH0pID0+IHtcbiAgICBsZXQga2V5ID0gdm0uY29uc3RhbnRzLmdldFN0cmluZyhfa2V5KTtcbiAgICBsZXQgZXhwciA9IHZtLnN0YWNrLnBvcCgpO1xuICAgIHZtLnN0YWNrLnB1c2goZXhwci5nZXQoa2V5KSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg3IC8qIFB1c2hCbG9jayAqLywgKHZtLCB7IG9wMTogX2Jsb2NrIH0pID0+IHtcbiAgICBsZXQgYmxvY2sgPSBfYmxvY2sgPyB2bS5jb25zdGFudHMuZ2V0QmxvY2soX2Jsb2NrKSA6IG51bGw7XG4gICAgdm0uc3RhY2sucHVzaChibG9jayk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg4IC8qIEdldEJsb2NrICovLCAodm0sIHsgb3AxOiBfYmxvY2sgfSkgPT4ge1xuICAgIHZtLnN0YWNrLnB1c2godm0uc2NvcGUoKS5nZXRCbG9jayhfYmxvY2spKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDkgLyogSGFzQmxvY2sgKi8sICh2bSwgeyBvcDE6IF9ibG9jayB9KSA9PiB7XG4gICAgbGV0IGhhc0Jsb2NrID0gISF2bS5zY29wZSgpLmdldEJsb2NrKF9ibG9jayk7XG4gICAgdm0uc3RhY2sucHVzaChoYXNCbG9jayA/IFRSVUVfUkVGRVJFTkNFIDogRkFMU0VfUkVGRVJFTkNFKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDEwIC8qIEhhc0Jsb2NrUGFyYW1zICovLCAodm0sIHsgb3AxOiBfYmxvY2sgfSkgPT4ge1xuICAgIGxldCBibG9jayA9IHZtLnNjb3BlKCkuZ2V0QmxvY2soX2Jsb2NrKTtcbiAgICBsZXQgaGFzQmxvY2tQYXJhbXMgPSBibG9jayAmJiBibG9jay5zeW1ib2xUYWJsZS5wYXJhbWV0ZXJzLmxlbmd0aDtcbiAgICB2bS5zdGFjay5wdXNoKGhhc0Jsb2NrUGFyYW1zID8gVFJVRV9SRUZFUkVOQ0UgOiBGQUxTRV9SRUZFUkVOQ0UpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoMTEgLyogQ29uY2F0ICovLCAodm0sIHsgb3AxOiBjb3VudCB9KSA9PiB7XG4gICAgbGV0IG91dCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSBjb3VudDsgaSA+IDA7IGktLSkge1xuICAgICAgICBvdXQucHVzaCh2bS5zdGFjay5wb3AoKSk7XG4gICAgfVxuICAgIHZtLnN0YWNrLnB1c2gobmV3IENvbmNhdFJlZmVyZW5jZShvdXQucmV2ZXJzZSgpKSk7XG59KTsiXX0=