inline ReturnedValue thisNumberValue(ExecutionContext *ctx) { if (ctx->thisObject().isNumber()) return ctx->thisObject().asReturnedValue(); NumberObject *n = ctx->thisObject().asNumberObject(); if (!n) return ctx->engine()->throwTypeError(); return Encode(n->value()); }
inline double thisNumber(ExecutionContext *ctx) { if (ctx->thisObject().isNumber()) return ctx->thisObject().asDouble(); NumberObject *n = ctx->thisObject().asNumberObject(); if (!n) return ctx->engine()->throwTypeError(); return n->value(); }
inline double thisNumber(Scope &scope, CallData *callData) { if (callData->thisObject.isNumber()) return callData->thisObject.asDouble(); NumberObject *n = callData->thisObject.as<NumberObject>(); if (!n) { scope.engine->throwTypeError(); return 0; } return n->value(); }
inline ReturnedValue thisNumberValue(Scope &scope, CallData *callData) { if (callData->thisObject.isNumber()) return callData->thisObject.asReturnedValue(); NumberObject *n = callData->thisObject.as<NumberObject>(); if (!n) { scope.engine->throwTypeError(); return Encode::undefined(); } return Encode(n->value()); }