UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

45 lines (43 loc) 1.82 kB
import { BuiltinInstanceOf } from '../BuiltinInstanceOf'; import { BuiltinInterface } from '../BuiltinInterface'; import { BufferConcat } from './concat'; import { BufferEquals } from './equals'; import { BufferFrom } from './from'; import { BufferLength } from './length'; import { BufferSlice } from './slice'; import { BufferToInteger } from './toInteger'; import { BufferToString } from './toString'; class BufferInterface extends BuiltinInterface { } class BufferValue extends 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 { } export const add = (builtins) => { builtins.addInterface('Buffer', new BufferInterface()); builtins.addValue('Buffer', new BufferValue()); builtins.addGlobalMember('Buffer', 'equals', new BufferEquals()); builtins.addGlobalMember('Buffer', 'length', new BufferLength()); builtins.addGlobalMember('Buffer', 'slice', new BufferSlice()); builtins.addGlobalMember('Buffer', 'toInteger', new BufferToInteger()); builtins.addGlobalMember('Buffer', 'toString', new BufferToString()); builtins.addInterface('BufferConstructor', new BufferConstructorInterface()); builtins.addGlobalMember('BufferConstructor', 'concat', new BufferConcat()); builtins.addGlobalMember('BufferConstructor', 'from', new BufferFrom()); }; //# sourceMappingURL=index.js.map