EncodedJSValue JSC_HOST_CALL IntlNumberFormatPrototypeFuncResolvedOptions(ExecState* state) { // 11.3.5 Intl.NumberFormat.prototype.resolvedOptions() (ECMA-402 2.0) IntlNumberFormat* numberFormat = jsDynamicCast<IntlNumberFormat*>(state->thisValue()); if (!numberFormat) return JSValue::encode(throwTypeError(state, ASCIILiteral("Intl.NumberFormat.prototype.resolvedOptions called on value that's not an object initialized as a NumberFormat"))); return JSValue::encode(numberFormat->resolvedOptions(*state)); }
EncodedJSValue JSC_HOST_CALL IntlNumberFormatPrototypeFuncResolvedOptions(ExecState* state) { // 11.3.5 Intl.NumberFormat.prototype.resolvedOptions() (ECMA-402 2.0) IntlNumberFormat* numberFormat = jsDynamicCast<IntlNumberFormat*>(state->thisValue()); // FIXME: Workaround to provide compatibility with ECMA-402 1.0 call/apply patterns. if (!numberFormat) numberFormat = jsDynamicCast<IntlNumberFormat*>(state->thisValue().get(state, state->vm().propertyNames->intlSubstituteValuePrivateName)); if (!numberFormat) return JSValue::encode(throwTypeError(state, ASCIILiteral("Intl.NumberFormat.prototype.resolvedOptions called on value that's not an object initialized as a NumberFormat"))); return JSValue::encode(numberFormat->resolvedOptions(*state)); }
EncodedJSValue JSC_HOST_CALL IntlNumberFormatPrototypeFuncResolvedOptions(ExecState* state) { VM& vm = state->vm(); auto scope = DECLARE_THROW_SCOPE(vm); // 11.3.5 Intl.NumberFormat.prototype.resolvedOptions() (ECMA-402 2.0) IntlNumberFormat* numberFormat = jsDynamicCast<IntlNumberFormat*>(vm, state->thisValue()); // FIXME: Workaround to provide compatibility with ECMA-402 1.0 call/apply patterns. // https://bugs.webkit.org/show_bug.cgi?id=153679 if (!numberFormat) { JSValue value = state->thisValue().get(state, vm.propertyNames->builtinNames().intlSubstituteValuePrivateName()); RETURN_IF_EXCEPTION(scope, encodedJSValue()); numberFormat = jsDynamicCast<IntlNumberFormat*>(vm, value); } if (!numberFormat) return JSValue::encode(throwTypeError(state, scope, ASCIILiteral("Intl.NumberFormat.prototype.resolvedOptions called on value that's not an object initialized as a NumberFormat"))); scope.release(); return JSValue::encode(numberFormat->resolvedOptions(*state)); }