Strict mode Failing
Expected no error, got SyntaxError: warning: the variable "Intl" was not declared in function "global"
non-Strict mode Failing
Expected no error, got ReferenceError: Property 'Intl' doesn't exist
Features:
- Symbol
Expected no error, got SyntaxError: warning: the variable "Intl" was not declared in function "global"
Expected no error, got ReferenceError: Property 'Intl' doesn't exist
// Copyright 2016 Mozilla Corporation. All rights reserved. // This code is governed by the license found in the LICENSE file. /*--- esid: sec-intl.numberformat.prototype.formattoparts description: > Tests that Intl.NumberFormat.prototype.formatToParts converts its argument (called value) to a number using ToNumber (7.1.3). info: | 11.1.4 Number Format Functions 4. Let x be ? ToNumber(value). features: [Symbol] ---*/ const toNumberResults = [ [undefined, NaN], [null, +0], [true, 1], [false, +0], ['42', 42], ['foo', NaN] ]; const nf = new Intl.NumberFormat(); function assertSameParts(actual, expected) { assert.sameValue(actual.length, expected.length); for (let i = 0; i < expected.length; ++i) { assert.sameValue(actual[i].type, expected[i].type); assert.sameValue(actual[i].value, expected[i].value); } } toNumberResults.forEach(pair => { const [value, result] = pair; assertSameParts(nf.formatToParts(value), nf.formatToParts(result)); }); let count = 0; const dummy = {}; dummy[Symbol.toPrimitive] = hint => (hint === 'number' ? ++count : NaN); assertSameParts(nf.formatToParts(dummy), nf.formatToParts(count)); assert.sameValue(count, 1); assert.throws( TypeError, () => nf.formatToParts(Symbol()), "ToNumber(arg) throws a TypeError when arg is of type 'Symbol'" );