@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
22 lines (20 loc) • 2.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Helper_1 = require("../Helper");
class FunctionHelper extends Helper_1.Helper {
constructor({ body }) {
super();
this.body = body;
}
emit(sb, node, options) {
if (options.pushValue) {
const jump = sb.jumpTable.add(sb, node, () => {
const innerOptions = { superClass: options.superClass };
this.body(innerOptions);
});
sb.emitPushInt(node, jump);
}
}
}
exports.FunctionHelper = FunctionHelper;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZ1bmN0aW9uSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsc0NBQW1DO0FBUW5DLE1BQWEsY0FBZSxTQUFRLGVBQU07SUFHeEMsWUFBbUIsRUFBRSxJQUFJLEVBQXlCO1FBQ2hELEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVNLElBQUksQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxPQUFxQjtRQUNqRSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDckIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQzNDLE1BQU0sWUFBWSxHQUFHLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztZQUNILEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztDQUNGO0FBakJELHdDQWlCQyIsImZpbGUiOiJuZW8tb25lLXNtYXJ0LWNvbnRyYWN0LWNvbXBpbGVyL3NyYy9jb21waWxlL2hlbHBlci9mdW5jdGlvbi9GdW5jdGlvbkhlbHBlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHsgU2NyaXB0QnVpbGRlciB9IGZyb20gJy4uLy4uL3NiJztcbmltcG9ydCB7IFZpc2l0T3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4uL0hlbHBlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25IZWxwZXJPcHRpb25zIHtcbiAgcmVhZG9ubHkgYm9keTogKG9wdGlvbnM6IFZpc2l0T3B0aW9ucykgPT4gdm9pZDtcbn1cblxuLy8gSW5wdXQ6IFtdXG4vLyBPdXRwdXQ6IFtqdW1wVGFyZ2V0XVxuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uSGVscGVyIGV4dGVuZHMgSGVscGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBib2R5OiAob3B0aW9uczogVmlzaXRPcHRpb25zKSA9PiB2b2lkO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih7IGJvZHkgfTogRnVuY3Rpb25IZWxwZXJPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmJvZHkgPSBib2R5O1xuICB9XG5cbiAgcHVibGljIGVtaXQoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLk5vZGUsIG9wdGlvbnM6IFZpc2l0T3B0aW9ucyk6IHZvaWQge1xuICAgIGlmIChvcHRpb25zLnB1c2hWYWx1ZSkge1xuICAgICAgY29uc3QganVtcCA9IHNiLmp1bXBUYWJsZS5hZGQoc2IsIG5vZGUsICgpID0+IHtcbiAgICAgICAgY29uc3QgaW5uZXJPcHRpb25zID0geyBzdXBlckNsYXNzOiBvcHRpb25zLnN1cGVyQ2xhc3MgfTtcbiAgICAgICAgdGhpcy5ib2R5KGlubmVyT3B0aW9ucyk7XG4gICAgICB9KTtcbiAgICAgIHNiLmVtaXRQdXNoSW50KG5vZGUsIGp1bXApO1xuICAgIH1cbiAgfVxufVxuIl19