UNPKG

derby

Version:

MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.

143 lines (142 loc) 3.6 kB
// `-` and `+` can be either unary or binary, so all unary operators are // postfixed with `U` to differentiate Object.defineProperty(exports, "__esModule", { value: true }); exports.set = exports.get = void 0; exports.get = { // Unary operators '!U': function (value) { return !value; }, '-U': function (value) { return -value; }, '+U': function (value) { return +value; }, '~U': function (value) { return ~value; }, 'typeofU': function (value) { return typeof value; }, // Binary operators '||': function (left, right) { return left || right; }, '&&': function (left, right) { return left && right; }, '|': function (left, right) { return left | right; }, '^': function (left, right) { return left ^ right; }, '&': function (left, right) { return left & right; }, '==': function (left, right) { // Template `==` intentionally uses same behavior as JS // eslint-disable-next-line eqeqeq return left == right; }, '!=': function (left, right) { // Template `!=` intentionally uses same behavior as JS // eslint-disable-next-line eqeqeq return left != right; }, '===': function (left, right) { return left === right; }, '!==': function (left, right) { return left !== right; }, '<': function (left, right) { return left < right; }, '>': function (left, right) { return left > right; }, '<=': function (left, right) { return left <= right; }, '>=': function (left, right) { return left >= right; }, 'instanceof': function (left, right) { return left instanceof right; }, 'in': function (left, right) { return left in right; }, '<<': function (left, right) { return left << right; }, '>>': function (left, right) { return left >> right; }, '>>>': function (left, right) { return left >>> right; }, '+': function (left, right) { return left + right; }, '-': function (left, right) { return left - right; }, '*': function (left, right) { return left * right; }, '/': function (left, right) { return left / right; }, '%': function (left, right) { return left % right; }, // Conditional operator '?': function (test, consequent, alternate) { return (test) ? consequent : alternate; }, // Sequence ',': function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return args[args.length - 1]; } }; exports.set = { // Unary operators '!U': function (value) { return [!value]; }, '-U': function (value) { return [-value]; }, // Binary operators '==': function (value, left, right) { if (value) return [right]; }, '===': function (value, left, right) { if (value) return [right]; }, 'in': function (value, left, right) { right[left] = true; return { 1: right }; }, '+': function (value, left, right) { return [value - right]; }, '-': function (value, left, right) { return [value + right]; }, '*': function (value, left, right) { return [value / right]; }, '/': function (value, left, right) { return [value * right]; } };