Sha256: 51af3336e955ec20fd775ca8f709c6bd8690d9cbda42efae918816ed248d4260
Contents?: true
Size: 1.11 KB
Versions: 9
Compression:
Stored size: 1.11 KB
Contents
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = extractValueFromUnaryExpression; /** * Extractor function for a UnaryExpression type value node. * A unary expression is an expression with a unary operator. * For example, !"foobar" will evaluate to false, so this will return false. * * @param - value - AST Value object with type `UnaryExpression` * @returns - The extracted value converted to correct type. */ function extractValueFromUnaryExpression(value) { // eslint-disable-next-line global-require var getValue = require('.').default; var operator = value.operator, argument = value.argument; switch (operator) { case '-': return -getValue(argument); case '+': return +getValue(argument); // eslint-disable-line no-implicit-coercion case '!': return !getValue(argument); case '~': return ~getValue(argument); // eslint-disable-line no-bitwise case 'delete': // I believe delete statements evaluate to true. return true; case 'typeof': case 'void': default: return undefined; } }
Version data entries
9 entries across 9 versions & 2 rubygems