ember-legacy-class-transform
Version:
The default blueprint for ember-cli addons.
94 lines (78 loc) • 10.9 kB
JavaScript
;
var _opcodes = require('../../opcodes');
var _references = require('../../references');
var _concat = require('../expressions/concat');
_opcodes.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);
});
_opcodes.APPEND_OPCODES.add(2 /* Function */, function (vm, _ref2) {
var _function = _ref2.op1;
var func = vm.constants.getFunction(_function);
vm.stack.push(func(vm));
});
_opcodes.APPEND_OPCODES.add(5 /* GetVariable */, function (vm, _ref3) {
var symbol = _ref3.op1;
var expr = vm.referenceForSymbol(symbol);
vm.stack.push(expr);
});
_opcodes.APPEND_OPCODES.add(4 /* SetVariable */, function (vm, _ref4) {
var symbol = _ref4.op1;
var expr = vm.stack.pop();
vm.scope().bindSymbol(symbol, expr);
});
_opcodes.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);
});
_opcodes.APPEND_OPCODES.add(19 /* RootScope */, function (vm, _ref6) {
var symbols = _ref6.op1,
bindCallerScope = _ref6.op2;
vm.pushRootScope(symbols, !!bindCallerScope);
});
_opcodes.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));
});
_opcodes.APPEND_OPCODES.add(7 /* PushBlock */, function (vm, _ref8) {
var _block = _ref8.op1;
var block = _block ? vm.constants.getBlock(_block) : null;
vm.stack.push(block);
});
_opcodes.APPEND_OPCODES.add(8 /* GetBlock */, function (vm, _ref9) {
var _block = _ref9.op1;
vm.stack.push(vm.scope().getBlock(_block));
});
_opcodes.APPEND_OPCODES.add(9 /* HasBlock */, function (vm, _ref10) {
var _block = _ref10.op1;
var hasBlock = !!vm.scope().getBlock(_block);
vm.stack.push(hasBlock ? _references.TRUE_REFERENCE : _references.FALSE_REFERENCE);
});
_opcodes.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 ? _references.TRUE_REFERENCE : _references.FALSE_REFERENCE);
});
_opcodes.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 _concat.ConcatReference(out.reverse()));
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21waWxlZC9vcGNvZGVzL2V4cHJlc3Npb25zLmpzIl0sIm5hbWVzIjpbIkFQUEVORF9PUENPREVTIiwiRkFMU0VfUkVGRVJFTkNFIiwiVFJVRV9SRUZFUkVOQ0UiLCJDb25jYXRSZWZlcmVuY2UiLCJhZGQiLCJ2bSIsIl9oZWxwZXIiLCJvcDEiLCJzdGFjayIsImhlbHBlciIsImNvbnN0YW50cyIsImdldEZ1bmN0aW9uIiwiYXJncyIsInBvcCIsInZhbHVlIiwiY2xlYXIiLCJwdXNoIiwiX2Z1bmN0aW9uIiwiZnVuYyIsInN5bWJvbCIsImV4cHIiLCJyZWZlcmVuY2VGb3JTeW1ib2wiLCJzY29wZSIsImJpbmRTeW1ib2wiLCJfbmFtZSIsIm5hbWUiLCJnZXRTdHJpbmciLCJsb2NhbHMiLCJnZXRQYXJ0aWFsTWFwIiwicmVmIiwidW5kZWZpbmVkIiwiZ2V0U2VsZiIsImdldCIsInN5bWJvbHMiLCJiaW5kQ2FsbGVyU2NvcGUiLCJvcDIiLCJwdXNoUm9vdFNjb3BlIiwiX2tleSIsImtleSIsIl9ibG9jayIsImJsb2NrIiwiZ2V0QmxvY2siLCJoYXNCbG9jayIsImhhc0Jsb2NrUGFyYW1zIiwic3ltYm9sVGFibGUiLCJwYXJhbWV0ZXJzIiwibGVuZ3RoIiwiY291bnQiLCJvdXQiLCJpIiwicmV2ZXJzZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxBQUFTLEFBQVQsQUFBK0IsQUFBL0I7O0FBQ0EsQUFBUyxBQUFULEFBQTBCLEFBQTFCLEFBQWdELEFBQWhEOztBQUNBLEFBQVMsQUFBVCxBQUFnQyxBQUFoQzs7QUFDQSx3QkFBZSxBQUFmLElBQW1CLEFBQW5CLEVBQXFCLEFBQXJCLGNBQW1DLFVBQUMsQUFBRCxVQUEwQjtRQUFkLEFBQWMsZUFBbkIsQUFBbUIsQUFDekQ7O1FBQUksUUFBUSxHQUFHLEFBQWYsQUFDQTtRQUFJLFNBQVMsR0FBRyxBQUFILFVBQWEsQUFBYixZQUF5QixBQUF6QixBQUFiLEFBQ0E7UUFBSSxPQUFPLE1BQU0sQUFBTixBQUFYLEFB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RUFBcUIsQUFBckIsZ0JBQXFDLFVBQUMsQUFBRCxZQUF5QjtRQUFiLEFBQWEsZ0JBQWxCLEFBQWtCLEFBQzFEOztRQUFJLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQUFBSCxRQUFXLEFBQVgsU0FBb0IsQUFBcEIsQUFBakIsQUFDQTtPQUFHLEFBQUgsTUFBUyxBQUFULEtBQWMsQUFBVyxBQUFYLEFBQTRCLEFBQTFDLEFBQ0g7QUFIRDtBQUlBLHdCQUFlLEFBQWYsSUFBbUIsQUFBbkIsR0FBc0IsQUFBdEIsc0JBQTRDLFVBQUMsQUFBRCxZQUF5QjtRQUFiLEFBQWEsZ0JBQWxCLEFBQWtCLEFBQ2pFOztRQUFJLFFBQVEsR0FBRyxBQUFILFFBQVcsQUFBWCxTQUFvQixBQUFwQixBQUFaLEFBQ0E7UUFBSSxpQkFBaUIsU0FBUyxNQUFNLEFBQU4sWUFBa0IsQUFBbEIsV0FBNkIsQUFBM0QsQUFDQTtPQUFHLEFBQUgsTUFBUyxBQUFULEtBQWMsQUFBaUIsQUFBakIsQUFBa0MsQUFBaEQsQUFDSDtBQUpEO0FBS0Esd0JBQWUsQUFBZixJQUFtQixBQUFuQixHQUFzQixBQUF0QixjQUFvQyxVQUFDLEFBQUQsWUFBd0I7UUFBWixBQUFZLGVBQWpCLEFBQWlCLEFBQ3hEOztRQUFJLE1BQU0sQUFBVixBQUNBO1NBQUssSUFBSSxJQUFJLEFBQWIsT0FBb0IsSUFBSSxBQUF4QixHQUEyQixBQUEzQixLQUFnQyxBQUM1QjtZQUFJLEFBQUosS0FBUyxHQUFHLEFBQUgsTUFBUyxBQUFULEFBQVQsQUFDSDtBQUNEO09BQUcsQUFBSCxNQUFTLEFBQVQsS0FBYyxBQUFJLEFBQUosNEJBQW9CLElBQUksQUFBSixBQUFwQixBQUFkLEFBQ0g7QUFORCIsImZpbGUiOiJsaWIvY29tcGlsZWQvb3Bjb2Rlcy9leHByZXNzaW9ucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUEVORF9PUENPREVTIH0gZnJvbSAnLi4vLi4vb3Bjb2Rlcyc7XG5pbXBvcnQgeyBGQUxTRV9SRUZFUkVOQ0UsIFRSVUVfUkVGRVJFTkNFIH0gZnJvbSAnLi4vLi4vcmVmZXJlbmNlcyc7XG5pbXBvcnQgeyBDb25jYXRSZWZlcmVuY2UgfSBmcm9tICcuLi9leHByZXNzaW9ucy9jb25jYXQnO1xuQVBQRU5EX09QQ09ERVMuYWRkKDEgLyogSGVscGVyICovLCAodm0sIHsgb3AxOiBfaGVscGVyIH0pID0+IHtcbiAgICBsZXQgc3RhY2sgPSB2bS5zdGFjaztcbiAgICBsZXQgaGVscGVyID0gdm0uY29uc3RhbnRzLmdldEZ1bmN0aW9uKF9oZWxwZXIpO1xuICAgIGxldCBhcmdzID0gc3RhY2sucG9wKCk7XG4gICAgbGV0IHZhbHVlID0gaGVscGVyKHZtLCBhcmdzKTtcbiAgICBhcmdzLmNsZWFyKCk7XG4gICAgdm0uc3RhY2sucHVzaCh2YWx1ZSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCgyIC8qIEZ1bmN0aW9uICovLCAodm0sIHsgb3AxOiBfZnVuY3Rpb24gfSkgPT4ge1xuICAgIGxldCBmdW5jID0gdm0uY29uc3RhbnRzLmdldEZ1bmN0aW9uKF9mdW5jdGlvbik7XG4gICAgdm0uc3RhY2sucHVzaChmdW5jKHZtKSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg1IC8qIEdldFZhcmlhYmxlICovLCAodm0sIHsgb3AxOiBzeW1ib2wgfSkgPT4ge1xuICAgIGxldCBleHByID0gdm0ucmVmZXJlbmNlRm9yU3ltYm9sKHN5bWJvbCk7XG4gICAgdm0uc3RhY2sucHVzaChleHByKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDQgLyogU2V0VmFyaWFibGUgKi8sICh2bSwgeyBvcDE6IHN5bWJvbCB9KSA9PiB7XG4gICAgbGV0IGV4cHIgPSB2bS5zdGFjay5wb3AoKTtcbiAgICB2bS5zY29wZSgpLmJpbmRTeW1ib2woc3ltYm9sLCBleHByKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDcwIC8qIFJlc29sdmVNYXliZUxvY2FsICovLCAodm0sIHsgb3AxOiBfbmFtZSB9KSA9PiB7XG4gICAgbGV0IG5hbWUgPSB2bS5jb25zdGFudHMuZ2V0U3RyaW5nKF9uYW1lKTtcbiAgICBsZXQgbG9jYWxzID0gdm0uc2NvcGUoKS5nZXRQYXJ0aWFsTWFwKCk7XG4gICAgbGV0IHJlZiA9IGxvY2Fsc1tuYW1lXTtcbiAgICBpZiAocmVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVmID0gdm0uZ2V0U2VsZigpLmdldChuYW1lKTtcbiAgICB9XG4gICAgdm0uc3RhY2sucHVzaChyZWYpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoMTkgLyogUm9vdFNjb3BlICovLCAodm0sIHsgb3AxOiBzeW1ib2xzLCBvcDI6IGJpbmRDYWxsZXJTY29wZSB9KSA9PiB7XG4gICAgdm0ucHVzaFJvb3RTY29wZShzeW1ib2xzLCAhIWJpbmRDYWxsZXJTY29wZSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2IC8qIEdldFByb3BlcnR5ICovLCAodm0sIHsgb3AxOiBfa2V5IH0pID0+IHtcbiAgICBsZXQga2V5ID0gdm0uY29uc3RhbnRzLmdldFN0cmluZyhfa2V5KTtcbiAgICBsZXQgZXhwciA9IHZtLnN0YWNrLnBvcCgpO1xuICAgIHZtLnN0YWNrLnB1c2goZXhwci5nZXQoa2V5KSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg3IC8qIFB1c2hCbG9jayAqLywgKHZtLCB7IG9wMTogX2Jsb2NrIH0pID0+IHtcbiAgICBsZXQgYmxvY2sgPSBfYmxvY2sgPyB2bS5jb25zdGFudHMuZ2V0QmxvY2soX2Jsb2NrKSA6IG51bGw7XG4gICAgdm0uc3RhY2sucHVzaChibG9jayk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg4IC8qIEdldEJsb2NrICovLCAodm0sIHsgb3AxOiBfYmxvY2sgfSkgPT4ge1xuICAgIHZtLnN0YWNrLnB1c2godm0uc2NvcGUoKS5nZXRCbG9jayhfYmxvY2spKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDkgLyogSGFzQmxvY2sgKi8sICh2bSwgeyBvcDE6IF9ibG9jayB9KSA9PiB7XG4gICAgbGV0IGhhc0Jsb2NrID0gISF2bS5zY29wZSgpLmdldEJsb2NrKF9ibG9jayk7XG4gICAgdm0uc3RhY2sucHVzaChoYXNCbG9jayA/IFRSVUVfUkVGRVJFTkNFIDogRkFMU0VfUkVGRVJFTkNFKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDEwIC8qIEhhc0Jsb2NrUGFyYW1zICovLCAodm0sIHsgb3AxOiBfYmxvY2sgfSkgPT4ge1xuICAgIGxldCBibG9jayA9IHZtLnNjb3BlKCkuZ2V0QmxvY2soX2Jsb2NrKTtcbiAgICBsZXQgaGFzQmxvY2tQYXJhbXMgPSBibG9jayAmJiBibG9jay5zeW1ib2xUYWJsZS5wYXJhbWV0ZXJzLmxlbmd0aDtcbiAgICB2bS5zdGFjay5wdXNoKGhhc0Jsb2NrUGFyYW1zID8gVFJVRV9SRUZFUkVOQ0UgOiBGQUxTRV9SRUZFUkVOQ0UpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoMTEgLyogQ29uY2F0ICovLCAodm0sIHsgb3AxOiBjb3VudCB9KSA9PiB7XG4gICAgbGV0IG91dCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSBjb3VudDsgaSA+IDA7IGktLSkge1xuICAgICAgICBvdXQucHVzaCh2bS5zdGFjay5wb3AoKSk7XG4gICAgfVxuICAgIHZtLnN0YWNrLnB1c2gobmV3IENvbmNhdFJlZmVyZW5jZShvdXQucmV2ZXJzZSgpKSk7XG59KTsiXX0=