@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
45 lines (43 loc) • 1.82 kB
JavaScript
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