@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
25 lines (23 loc) • 3.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const BuiltinInstanceOf_1 = require("../BuiltinInstanceOf");
class ValueInstanceOf extends BuiltinInstanceOf_1.BuiltinInstanceOf {
constructor(type, isHelper) {
super();
this.type = type;
this.isHelper = isHelper;
}
emitInstanceOf(sb, node, optionsIn) {
const options = sb.pushValueOptions(optionsIn);
sb.visit(node, options);
if (optionsIn.pushValue) {
sb.emitHelper(node, options, this.isHelper(sb));
sb.emitHelper(node, options, sb.helpers.wrapBoolean);
}
else {
sb.emitOp(node, 'DROP');
}
}
}
exports.ValueInstanceOf = ValueInstanceOf;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlZhbHVlSW5zdGFuY2VPZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLDREQUF5RDtBQUV6RCxNQUFhLGVBQWdCLFNBQVEscUNBQWlCO0lBQ3BELFlBQW1DLElBQVksRUFBbUIsUUFBdUM7UUFDdkcsS0FBSyxFQUFFLENBQUM7UUFEeUIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFtQixhQUFRLEdBQVIsUUFBUSxDQUErQjtJQUV6RyxDQUFDO0lBRU0sY0FBYyxDQUFDLEVBQWlCLEVBQUUsSUFBbUIsRUFBRSxTQUF1QjtRQUNuRixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFL0MsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEIsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFO1lBRXZCLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFaEQsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDdEQ7YUFBTTtZQUdMLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztDQUNGO0FBcEJELDBDQW9CQyIsImZpbGUiOiJuZW8tb25lLXNtYXJ0LWNvbnRyYWN0LWNvbXBpbGVyL3NyYy9jb21waWxlL2J1aWx0aW5zL2NvbnRyYWN0L1ZhbHVlSW5zdGFuY2VPZi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4uLy4uL2hlbHBlcic7XG5pbXBvcnQgeyBTY3JpcHRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vc2InO1xuaW1wb3J0IHsgVmlzaXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQnVpbHRpbkluc3RhbmNlT2YgfSBmcm9tICcuLi9CdWlsdGluSW5zdGFuY2VPZic7XG5cbmV4cG9ydCBjbGFzcyBWYWx1ZUluc3RhbmNlT2YgZXh0ZW5kcyBCdWlsdGluSW5zdGFuY2VPZiB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IGlzSGVscGVyOiAoc2I6IFNjcmlwdEJ1aWxkZXIpID0+IEhlbHBlcikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdEluc3RhbmNlT2Yoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLkV4cHJlc3Npb24sIG9wdGlvbnNJbjogVmlzaXRPcHRpb25zKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHNiLnB1c2hWYWx1ZU9wdGlvbnMob3B0aW9uc0luKTtcbiAgICAvLyBbdmFsXVxuICAgIHNiLnZpc2l0KG5vZGUsIG9wdGlvbnMpO1xuICAgIGlmIChvcHRpb25zSW4ucHVzaFZhbHVlKSB7XG4gICAgICAvLyBbYm9vbGVhbl1cbiAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgdGhpcy5pc0hlbHBlcihzYikpO1xuICAgICAgLy8gW3ZhbF1cbiAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgc2IuaGVscGVycy53cmFwQm9vbGVhbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFtdXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgc2IuZW1pdE9wKG5vZGUsICdEUk9QJyk7XG4gICAgfVxuICB9XG59XG4iXX0=