Merge pull request #2712 from shvaikalesh/intl402-intl-object-tostringtag

Add Intl[@@toStringTag] coverage
This commit is contained in:
Leo Balter 2020-07-30 15:19:38 -07:00 committed by GitHub
commit e0ef80b967
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 56 additions and 15 deletions

View File

@ -2,7 +2,7 @@
// This code is governed by the license found in the LICENSE file.
/*---
es5id: 8.0_L15
esid: intl-object
description: >
Tests that Intl meets the requirements for built-in objects
defined by the introduction of chapter 17 of the ECMAScript
@ -10,10 +10,6 @@ description: >
author: Norbert Lindenberg
---*/
assert.sameValue(Object.prototype.toString.call(Intl), "[object Object]",
"The [[Class]] internal property of a built-in non-function object must be " +
"\"Object\".");
assert(Object.isExtensible(Intl), "Built-in objects must be extensible.");
assert.sameValue(Object.getPrototypeOf(Intl), Object.prototype,

View File

@ -1,10 +0,0 @@
// Copyright 2013 Mozilla Corporation. All rights reserved.
// This code is governed by the license found in the LICENSE file.
/*---
es5id: 8.0
description: Tests that Intl has Object.prototype as its prototype.
author: Norbert Lindenberg
---*/
assert.sameValue(Object.getPrototypeOf(Intl), Object.prototype, "Intl doesn't have Object.prototype as its prototype.");

View File

@ -0,0 +1,32 @@
// Copyright (C) 2020 Alexey Shvayka. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-Intl-toStringTag
description: >
Object.prototype.toString utilizes Intl[@@toStringTag] and doesn't special-case Intl namespace object.
info: |
Object.prototype.toString ( )
[...]
14. Else, let builtinTag be "Object".
15. Let tag be ? Get(O, @@toStringTag).
16. If Type(tag) is not String, set tag to builtinTag.
17. Return the string-concatenation of "[object ", tag, and "]".
Intl [ @@toStringTag ]
The initial value of the @@toStringTag property is the String value "Intl".
features: [Symbol.toStringTag]
---*/
assert.sameValue(Intl.toString(), "[object Intl]");
assert.sameValue(Object.prototype.toString.call(Intl), "[object Intl]");
Object.defineProperty(Intl, Symbol.toStringTag, { value: "test262" });
assert.sameValue(Intl.toString(), "[object test262]");
assert.sameValue(Object.prototype.toString.call(Intl), "[object test262]");
assert(delete Intl[Symbol.toStringTag]);
assert.sameValue(Intl.toString(), "[object Object]");
assert.sameValue(Object.prototype.toString.call(Intl), "[object Object]");

View File

@ -0,0 +1,23 @@
// Copyright (C) 2020 Alexey Shvayka. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-Intl-toStringTag
description: >
Property descriptor of Intl[@@toStringTag].
info: |
Intl [ @@toStringTag ]
The initial value of the @@toStringTag property is the String value "Intl".
This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }.
features: [Symbol.toStringTag]
includes: [propertyHelper.js]
---*/
verifyProperty(Intl, Symbol.toStringTag, {
value: "Intl",
writable: false,
enumerable: false,
configurable: true,
});