@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
57 lines (55 loc) • 6.56 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const TypedHelper_1 = require("../TypedHelper");
class ToObjectHelper extends TypedHelper_1.TypedHelper {
emit(sb, node, options) {
if (!options.pushValue) {
sb.emitOp(node, 'DROP');
return;
}
const throwTypeError = (innerOptions) => {
sb.emitOp(node, 'DROP');
sb.emitHelper(node, innerOptions, sb.helpers.throwTypeError);
};
const emptyObject = (innerOptions) => {
sb.emitOp(node, 'DROP');
sb.emitHelper(node, innerOptions, sb.helpers.createObject);
};
const identity = () => {
};
sb.emitHelper(node, options, sb.helpers.forBuiltinType({
type: this.type,
knownType: this.knownType,
array: emptyObject,
arrayStorage: emptyObject,
boolean: emptyObject,
buffer: emptyObject,
null: throwTypeError,
number: emptyObject,
object: identity,
string: emptyObject,
symbol: emptyObject,
undefined: throwTypeError,
map: emptyObject,
mapStorage: emptyObject,
set: emptyObject,
setStorage: emptyObject,
error: emptyObject,
forwardValue: emptyObject,
iteratorResult: emptyObject,
iterable: emptyObject,
iterableIterator: emptyObject,
transaction: emptyObject,
output: emptyObject,
attribute: emptyObject,
input: emptyObject,
account: emptyObject,
asset: emptyObject,
contract: emptyObject,
header: emptyObject,
block: emptyObject,
}));
}
}
exports.ToObjectHelper = ToObjectHelper;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvT2JqZWN0SGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsZ0RBQTZDO0FBSTdDLE1BQWEsY0FBZSxTQUFRLHlCQUFXO0lBQ3RDLElBQUksQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxPQUFxQjtRQUNqRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUN0QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUV4QixPQUFPO1NBQ1I7UUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLFlBQTBCLEVBQUUsRUFBRTtZQUNwRCxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN4QixFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBRyxDQUFDLFlBQTBCLEVBQUUsRUFBRTtZQUNqRCxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN4QixFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUU7UUFFdEIsQ0FBQyxDQUFDO1FBR0YsRUFBRSxDQUFDLFVBQVUsQ0FDWCxJQUFJLEVBQ0osT0FBTyxFQUNQLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQ3hCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixLQUFLLEVBQUUsV0FBVztZQUNsQixZQUFZLEVBQUUsV0FBVztZQUN6QixPQUFPLEVBQUUsV0FBVztZQUNwQixNQUFNLEVBQUUsV0FBVztZQUNuQixJQUFJLEVBQUUsY0FBYztZQUNwQixNQUFNLEVBQUUsV0FBVztZQUNuQixNQUFNLEVBQUUsUUFBUTtZQUNoQixNQUFNLEVBQUUsV0FBVztZQUNuQixNQUFNLEVBQUUsV0FBVztZQUNuQixTQUFTLEVBQUUsY0FBYztZQUN6QixHQUFHLEVBQUUsV0FBVztZQUNoQixVQUFVLEVBQUUsV0FBVztZQUN2QixHQUFHLEVBQUUsV0FBVztZQUNoQixVQUFVLEVBQUUsV0FBVztZQUN2QixLQUFLLEVBQUUsV0FBVztZQUNsQixZQUFZLEVBQUUsV0FBVztZQUN6QixjQUFjLEVBQUUsV0FBVztZQUMzQixRQUFRLEVBQUUsV0FBVztZQUNyQixnQkFBZ0IsRUFBRSxXQUFXO1lBQzdCLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLE1BQU0sRUFBRSxXQUFXO1lBQ25CLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLEtBQUssRUFBRSxXQUFXO1lBQ2xCLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLEtBQUssRUFBRSxXQUFXO1lBQ2xCLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLE1BQU0sRUFBRSxXQUFXO1lBQ25CLEtBQUssRUFBRSxXQUFXO1NBQ25CLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBNURELHdDQTREQyIsImZpbGUiOiJuZW8tb25lLXNtYXJ0LWNvbnRyYWN0LWNvbXBpbGVyL3NyYy9jb21waWxlL2hlbHBlci90eXBlcy9vYmplY3QvVG9PYmplY3RIZWxwZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBTY3JpcHRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vc2InO1xuaW1wb3J0IHsgVmlzaXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgVHlwZWRIZWxwZXIgfSBmcm9tICcuLi9UeXBlZEhlbHBlcic7XG5cbi8vIElucHV0OiBbdmFsXVxuLy8gT3V0cHV0OiBbb2JqZWN0VmFsXVxuZXhwb3J0IGNsYXNzIFRvT2JqZWN0SGVscGVyIGV4dGVuZHMgVHlwZWRIZWxwZXIge1xuICBwdWJsaWMgZW1pdChzYjogU2NyaXB0QnVpbGRlciwgbm9kZTogdHMuTm9kZSwgb3B0aW9uczogVmlzaXRPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKCFvcHRpb25zLnB1c2hWYWx1ZSkge1xuICAgICAgc2IuZW1pdE9wKG5vZGUsICdEUk9QJyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0aHJvd1R5cGVFcnJvciA9IChpbm5lck9wdGlvbnM6IFZpc2l0T3B0aW9ucykgPT4ge1xuICAgICAgc2IuZW1pdE9wKG5vZGUsICdEUk9QJyk7XG4gICAgICBzYi5lbWl0SGVscGVyKG5vZGUsIGlubmVyT3B0aW9ucywgc2IuaGVscGVycy50aHJvd1R5cGVFcnJvcik7XG4gICAgfTtcblxuICAgIGNvbnN0IGVtcHR5T2JqZWN0ID0gKGlubmVyT3B0aW9uczogVmlzaXRPcHRpb25zKSA9PiB7XG4gICAgICBzYi5lbWl0T3Aobm9kZSwgJ0RST1AnKTtcbiAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgaW5uZXJPcHRpb25zLCBzYi5oZWxwZXJzLmNyZWF0ZU9iamVjdCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGlkZW50aXR5ID0gKCkgPT4ge1xuICAgICAgLy8gZG8gbm90aGluZ1xuICAgIH07XG5cbiAgICAvLyBbdmFsXVxuICAgIHNiLmVtaXRIZWxwZXIoXG4gICAgICBub2RlLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIHNiLmhlbHBlcnMuZm9yQnVpbHRpblR5cGUoe1xuICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgIGtub3duVHlwZTogdGhpcy5rbm93blR5cGUsXG4gICAgICAgIGFycmF5OiBlbXB0eU9iamVjdCxcbiAgICAgICAgYXJyYXlTdG9yYWdlOiBlbXB0eU9iamVjdCxcbiAgICAgICAgYm9vbGVhbjogZW1wdHlPYmplY3QsXG4gICAgICAgIGJ1ZmZlcjogZW1wdHlPYmplY3QsXG4gICAgICAgIG51bGw6IHRocm93VHlwZUVycm9yLFxuICAgICAgICBudW1iZXI6IGVtcHR5T2JqZWN0LFxuICAgICAgICBvYmplY3Q6IGlkZW50aXR5LFxuICAgICAgICBzdHJpbmc6IGVtcHR5T2JqZWN0LFxuICAgICAgICBzeW1ib2w6IGVtcHR5T2JqZWN0LFxuICAgICAgICB1bmRlZmluZWQ6IHRocm93VHlwZUVycm9yLFxuICAgICAgICBtYXA6IGVtcHR5T2JqZWN0LFxuICAgICAgICBtYXBTdG9yYWdlOiBlbXB0eU9iamVjdCxcbiAgICAgICAgc2V0OiBlbXB0eU9iamVjdCxcbiAgICAgICAgc2V0U3RvcmFnZTogZW1wdHlPYmplY3QsXG4gICAgICAgIGVycm9yOiBlbXB0eU9iamVjdCxcbiAgICAgICAgZm9yd2FyZFZhbHVlOiBlbXB0eU9iamVjdCxcbiAgICAgICAgaXRlcmF0b3JSZXN1bHQ6IGVtcHR5T2JqZWN0LFxuICAgICAgICBpdGVyYWJsZTogZW1wdHlPYmplY3QsXG4gICAgICAgIGl0ZXJhYmxlSXRlcmF0b3I6IGVtcHR5T2JqZWN0LFxuICAgICAgICB0cmFuc2FjdGlvbjogZW1wdHlPYmplY3QsXG4gICAgICAgIG91dHB1dDogZW1wdHlPYmplY3QsXG4gICAgICAgIGF0dHJpYnV0ZTogZW1wdHlPYmplY3QsXG4gICAgICAgIGlucHV0OiBlbXB0eU9iamVjdCxcbiAgICAgICAgYWNjb3VudDogZW1wdHlPYmplY3QsXG4gICAgICAgIGFzc2V0OiBlbXB0eU9iamVjdCxcbiAgICAgICAgY29udHJhY3Q6IGVtcHR5T2JqZWN0LFxuICAgICAgICBoZWFkZXI6IGVtcHR5T2JqZWN0LFxuICAgICAgICBibG9jazogZW1wdHlPYmplY3QsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0=