@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
26 lines (24 loc) • 3.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ts_utils_1 = require("@neo-one/ts-utils");
const constants_1 = require("../../../constants");
const BuiltinInstanceMemberCall_1 = require("../../BuiltinInstanceMemberCall");
class ArrayStorageIterator extends BuiltinInstanceMemberCall_1.BuiltinInstanceMemberCall {
canCall() {
return true;
}
emitCall(sb, func, node, options, visited) {
if (!options.pushValue) {
if (visited) {
sb.emitOp(node, 'DROP');
}
return;
}
if (!visited) {
sb.visit(ts_utils_1.tsUtils.expression.getExpression(func), options);
}
sb.emitHelper(node, options, sb.helpers.createValIterableIteratorStructuredStorage({ type: constants_1.Types.ArrayStorage }));
}
}
exports.ArrayStorageIterator = ArrayStorageIterator;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0RBQTRDO0FBRTVDLGtEQUEyQztBQUczQywrRUFBNEU7QUFJNUUsTUFBYSxvQkFBcUIsU0FBUSxxREFBeUI7SUFDMUQsT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFFBQVEsQ0FDYixFQUFpQixFQUNqQixJQUE4QixFQUM5QixJQUF1QixFQUN2QixPQUFxQixFQUNyQixPQUFnQjtRQUVoQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUN0QixJQUFJLE9BQU8sRUFBRTtnQkFFWCxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN6QjtZQUVELE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFFWixFQUFFLENBQUMsS0FBSyxDQUFDLGtCQUFPLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMzRDtRQUdELEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BILENBQUM7Q0FDRjtBQTVCRCxvREE0QkMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9idWlsdGlucy9jb250cmFjdC9hcnJheVN0b3JhZ2UvaXRlcmF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0c1V0aWxzIH0gZnJvbSAnQG5lby1vbmUvdHMtdXRpbHMnO1xuaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgVHlwZXMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU2NyaXB0QnVpbGRlciB9IGZyb20gJy4uLy4uLy4uL3NiJztcbmltcG9ydCB7IFZpc2l0T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEJ1aWx0aW5JbnN0YW5jZU1lbWJlckNhbGwgfSBmcm9tICcuLi8uLi9CdWlsdGluSW5zdGFuY2VNZW1iZXJDYWxsJztcbmltcG9ydCB7IENhbGxNZW1iZXJMaWtlRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIGV4cG9ydC1uYW1lXG5leHBvcnQgY2xhc3MgQXJyYXlTdG9yYWdlSXRlcmF0b3IgZXh0ZW5kcyBCdWlsdGluSW5zdGFuY2VNZW1iZXJDYWxsIHtcbiAgcHVibGljIGNhbkNhbGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgZW1pdENhbGwoXG4gICAgc2I6IFNjcmlwdEJ1aWxkZXIsXG4gICAgZnVuYzogQ2FsbE1lbWJlckxpa2VFeHByZXNzaW9uLFxuICAgIG5vZGU6IHRzLkNhbGxFeHByZXNzaW9uLFxuICAgIG9wdGlvbnM6IFZpc2l0T3B0aW9ucyxcbiAgICB2aXNpdGVkOiBib29sZWFuLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIW9wdGlvbnMucHVzaFZhbHVlKSB7XG4gICAgICBpZiAodmlzaXRlZCkge1xuICAgICAgICAvLyBbXVxuICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ0RST1AnKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXZpc2l0ZWQpIHtcbiAgICAgIC8vIFthcnJheVZhbF1cbiAgICAgIHNiLnZpc2l0KHRzVXRpbHMuZXhwcmVzc2lvbi5nZXRFeHByZXNzaW9uKGZ1bmMpLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyBbdmFsXVxuICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgc2IuaGVscGVycy5jcmVhdGVWYWxJdGVyYWJsZUl0ZXJhdG9yU3RydWN0dXJlZFN0b3JhZ2UoeyB0eXBlOiBUeXBlcy5BcnJheVN0b3JhZ2UgfSkpO1xuICB9XG59XG4iXX0=