@jplorg/jpl
Version:
JPL interpreter
24 lines (23 loc) • 632 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _library = require("../library");
function builtin(runtime, signal, next, input) {
const value = runtime.unwrapValue(input);
const t = runtime.type(value);
switch (t) {
case 'null':
return next(0);
case 'array':
return next(value.length);
case 'string':
return next([...value].length);
case 'object':
return next(Object.keys(value).length);
default:
}
throw new _library.JPLTypeError('%s (%*<100v) has no length', t, value);
}
var _default = exports.default = builtin;