UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

25 lines (23 loc) 3.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ScopeCapturingScriptBuilder_1 = require("./ScopeCapturingScriptBuilder"); class HelperCapturingScriptBuilder extends ScopeCapturingScriptBuilder_1.ScopeCapturingScriptBuilder { constructor() { super(...arguments); this.mutableCapturedHelpersSet = new Set(); this.mutableCapturedHelpers = []; } getHelpers() { return [...this.mutableCapturedHelpers]; } emitHelper(node, options, helper) { if (!this.mutableCapturedHelpersSet.has(helper)) { this.mutableCapturedHelpersSet.add(helper); this.mutableCapturedHelpers.push(helper); helper.emitGlobal(this, node, options); } helper.emit(this, node, options); } } exports.HelperCapturingScriptBuilder = HelperCapturingScriptBuilder; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkhlbHBlckNhcHR1cmluZ1NjcmlwdEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSwrRUFBNEU7QUFHNUUsTUFBYSw0QkFBNkIsU0FBUSx5REFBMkI7SUFBN0U7O1FBQ21CLDhCQUF5QixHQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ25ELDJCQUFzQixHQUFhLEVBQUUsQ0FBQztJQWN6RCxDQUFDO0lBWlEsVUFBVTtRQUNmLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxVQUFVLENBQW9CLElBQU8sRUFBRSxPQUFxQixFQUFFLE1BQWlCO1FBQ3BGLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDeEM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNGO0FBaEJELG9FQWdCQyIsImZpbGUiOiJuZW8tb25lLXNtYXJ0LWNvbnRyYWN0LWNvbXBpbGVyL3NyYy9jb21waWxlL3NiL0hlbHBlckNhcHR1cmluZ1NjcmlwdEJ1aWxkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXInO1xuaW1wb3J0IHsgVmlzaXRPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgU2NvcGVDYXB0dXJpbmdTY3JpcHRCdWlsZGVyIH0gZnJvbSAnLi9TY29wZUNhcHR1cmluZ1NjcmlwdEJ1aWxkZXInO1xuaW1wb3J0IHsgU2NyaXB0QnVpbGRlciB9IGZyb20gJy4vU2NyaXB0QnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBIZWxwZXJDYXB0dXJpbmdTY3JpcHRCdWlsZGVyIGV4dGVuZHMgU2NvcGVDYXB0dXJpbmdTY3JpcHRCdWlsZGVyIGltcGxlbWVudHMgU2NyaXB0QnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbXV0YWJsZUNhcHR1cmVkSGVscGVyc1NldDogU2V0PEhlbHBlcj4gPSBuZXcgU2V0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbXV0YWJsZUNhcHR1cmVkSGVscGVyczogSGVscGVyW10gPSBbXTtcblxuICBwdWJsaWMgZ2V0SGVscGVycygpOiBSZWFkb25seUFycmF5PEhlbHBlcj4ge1xuICAgIHJldHVybiBbLi4udGhpcy5tdXRhYmxlQ2FwdHVyZWRIZWxwZXJzXTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0SGVscGVyPFQgZXh0ZW5kcyB0cy5Ob2RlPihub2RlOiBULCBvcHRpb25zOiBWaXNpdE9wdGlvbnMsIGhlbHBlcjogSGVscGVyPFQ+KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11dGFibGVDYXB0dXJlZEhlbHBlcnNTZXQuaGFzKGhlbHBlcikpIHtcbiAgICAgIHRoaXMubXV0YWJsZUNhcHR1cmVkSGVscGVyc1NldC5hZGQoaGVscGVyKTtcbiAgICAgIHRoaXMubXV0YWJsZUNhcHR1cmVkSGVscGVycy5wdXNoKGhlbHBlcik7XG4gICAgICBoZWxwZXIuZW1pdEdsb2JhbCh0aGlzLCBub2RlLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaGVscGVyLmVtaXQodGhpcywgbm9kZSwgb3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==