static EncodedJSValue JSC_HOST_CALL IntlNumberFormatFuncFormatNumber(ExecState* state) { // 11.3.4 Format Number Functions (ECMA-402 2.0) // 1. Let nf be the this value. // 2. Assert: Type(nf) is Object and nf has an [[initializedNumberFormat]] internal slot whose value true. IntlNumberFormat* numberFormat = jsCast<IntlNumberFormat*>(state->thisValue()); // 3. If value is not provided, let value be undefined. // 4. Let x be ToNumber(value). double number = state->argument(0).toNumber(state); // 5. ReturnIfAbrupt(x). if (state->hadException()) return JSValue::encode(jsUndefined()); // 6. Return FormatNumber(nf, x). return JSValue::encode(numberFormat->formatNumber(*state, number)); }
static EncodedJSValue JSC_HOST_CALL IntlNumberFormatFuncFormatNumber(ExecState* state) { VM& vm = state->vm(); auto scope = DECLARE_THROW_SCOPE(vm); // 11.3.4 Format Number Functions (ECMA-402 2.0) // 1. Let nf be the this value. // 2. Assert: Type(nf) is Object and nf has an [[initializedNumberFormat]] internal slot whose value true. IntlNumberFormat* numberFormat = jsCast<IntlNumberFormat*>(state->thisValue()); // 3. If value is not provided, let value be undefined. // 4. Let x be ToNumber(value). double number = state->argument(0).toNumber(state); // 5. ReturnIfAbrupt(x). RETURN_IF_EXCEPTION(scope, encodedJSValue()); // 6. Return FormatNumber(nf, x). scope.release(); return JSValue::encode(numberFormat->formatNumber(*state, number)); }