@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
48 lines (46 loc) • 2.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.add = void 0;
const BuiltinInstanceOf_1 = require("../BuiltinInstanceOf");
const BuiltinInterface_1 = require("../BuiltinInterface");
const concat_1 = require("./concat");
const equals_1 = require("./equals");
const from_1 = require("./from");
const length_1 = require("./length");
const slice_1 = require("./slice");
const toInteger_1 = require("./toInteger");
const toString_1 = require("./toString");
class BufferInterface extends BuiltinInterface_1.BuiltinInterface {
}
class BufferValue extends BuiltinInstanceOf_1.BuiltinInstanceOf {
constructor() {
super(...arguments);
this.type = 'BufferConstructor';
}
emitInstanceOf(sb, node, optionsIn) {
const options = sb.pushValueOptions(optionsIn);
sb.visit(node, options);
if (optionsIn.pushValue) {
sb.emitHelper(node, options, sb.helpers.isBuffer);
sb.emitHelper(node, options, sb.helpers.wrapBoolean);
}
else {
sb.emitOp(node, 'DROP');
}
}
}
class BufferConstructorInterface extends BuiltinInterface_1.BuiltinInterface {
}
exports.add = (builtins) => {
builtins.addInterface('Buffer', new BufferInterface());
builtins.addValue('Buffer', new BufferValue());
builtins.addGlobalMember('Buffer', 'equals', new equals_1.BufferEquals());
builtins.addGlobalMember('Buffer', 'length', new length_1.BufferLength());
builtins.addGlobalMember('Buffer', 'slice', new slice_1.BufferSlice());
builtins.addGlobalMember('Buffer', 'toInteger', new toInteger_1.BufferToInteger());
builtins.addGlobalMember('Buffer', 'toString', new toString_1.BufferToString());
builtins.addInterface('BufferConstructor', new BufferConstructorInterface());
builtins.addGlobalMember('BufferConstructor', 'concat', new concat_1.BufferConcat());
builtins.addGlobalMember('BufferConstructor', 'from', new from_1.BufferFrom());
};
//# sourceMappingURL=index.js.map