hyperformula
Version:
HyperFormula is a JavaScript engine for efficient processing of spreadsheet-like data and formulas
54 lines (52 loc) • 1.54 kB
JavaScript
;
exports.__esModule = true;
exports.BitwiseLogicOperationsPlugin = void 0;
var _FunctionPlugin = require("./FunctionPlugin");
/**
* @license
* Copyright (c) 2025 Handsoncode. All rights reserved.
*/
class BitwiseLogicOperationsPlugin extends _FunctionPlugin.FunctionPlugin {
bitand(ast, state) {
return this.runFunction(ast.args, state, this.metadata('BITAND'), (left, right) => left & right);
}
bitor(ast, state) {
return this.runFunction(ast.args, state, this.metadata('BITOR'), (left, right) => left | right);
}
bitxor(ast, state) {
return this.runFunction(ast.args, state, this.metadata('BITXOR'), (left, right) => left ^ right);
}
}
exports.BitwiseLogicOperationsPlugin = BitwiseLogicOperationsPlugin;
BitwiseLogicOperationsPlugin.implementedFunctions = {
'BITAND': {
method: 'bitand',
parameters: [{
argumentType: _FunctionPlugin.FunctionArgumentType.INTEGER,
minValue: 0
}, {
argumentType: _FunctionPlugin.FunctionArgumentType.INTEGER,
minValue: 0
}]
},
'BITOR': {
method: 'bitor',
parameters: [{
argumentType: _FunctionPlugin.FunctionArgumentType.INTEGER,
minValue: 0
}, {
argumentType: _FunctionPlugin.FunctionArgumentType.INTEGER,
minValue: 0
}]
},
'BITXOR': {
method: 'bitxor',
parameters: [{
argumentType: _FunctionPlugin.FunctionArgumentType.INTEGER,
minValue: 0
}, {
argumentType: _FunctionPlugin.FunctionArgumentType.INTEGER,
minValue: 0
}]
}
};