Correct property descriptors on GeneratorPrototype
The ES6 specification does not explicitly state the attributes for the 'next' and 'throw' property descriptors, so their values are defined by Section 17 [1]: > Every other data property described in clauses 18 through 26 and in > Annex B.2 has the attributes > { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true } > unless otherwise specified. [1] https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ecmascript-standard-built-in-objects BUG=v8:3986 LOG=N R=wingo,arv Review URL: https://codereview.chromium.org/1051363003 Cr-Commit-Position: refs/heads/master@{#27770}
This commit is contained in:
parent
6e17f661c1
commit
0a4881600d
@ -89,7 +89,7 @@ function SetUpGenerators() {
|
|||||||
// Set up non-enumerable functions on the generator prototype object.
|
// Set up non-enumerable functions on the generator prototype object.
|
||||||
var GeneratorObjectPrototype = GeneratorFunctionPrototype.prototype;
|
var GeneratorObjectPrototype = GeneratorFunctionPrototype.prototype;
|
||||||
InstallFunctions(GeneratorObjectPrototype,
|
InstallFunctions(GeneratorObjectPrototype,
|
||||||
DONT_ENUM | DONT_DELETE | READ_ONLY,
|
DONT_ENUM,
|
||||||
["next", GeneratorObjectNext,
|
["next", GeneratorObjectNext,
|
||||||
"throw", GeneratorObjectThrow]);
|
"throw", GeneratorObjectThrow]);
|
||||||
|
|
||||||
|
@ -114,7 +114,28 @@ function TestGeneratorObjectPrototype() {
|
|||||||
|
|
||||||
assertArrayEquals(expected_property_names, found_property_names);
|
assertArrayEquals(expected_property_names, found_property_names);
|
||||||
|
|
||||||
iterator_desc = Object.getOwnPropertyDescriptor(GeneratorObjectPrototype,
|
var constructor_desc = Object.getOwnPropertyDescriptor(
|
||||||
|
GeneratorObjectPrototype, "constructor");
|
||||||
|
assertTrue(constructor_desc !== undefined);
|
||||||
|
assertFalse(constructor_desc.writable);
|
||||||
|
assertFalse(constructor_desc.enumerable);
|
||||||
|
assertTrue(constructor_desc.configurable);
|
||||||
|
|
||||||
|
var next_desc = Object.getOwnPropertyDescriptor(GeneratorObjectPrototype,
|
||||||
|
"next");
|
||||||
|
assertTrue(next_desc !== undefined);
|
||||||
|
assertTrue(next_desc.writable);
|
||||||
|
assertFalse(next_desc.enumerable);
|
||||||
|
assertTrue(next_desc.configurable);
|
||||||
|
|
||||||
|
var throw_desc = Object.getOwnPropertyDescriptor(GeneratorObjectPrototype,
|
||||||
|
"throw");
|
||||||
|
assertTrue(next_desc !== undefined);
|
||||||
|
assertTrue(next_desc.writable);
|
||||||
|
assertFalse(next_desc.enumerable);
|
||||||
|
assertTrue(next_desc.configurable);
|
||||||
|
|
||||||
|
var iterator_desc = Object.getOwnPropertyDescriptor(GeneratorObjectPrototype,
|
||||||
Symbol.iterator);
|
Symbol.iterator);
|
||||||
assertTrue(iterator_desc !== undefined);
|
assertTrue(iterator_desc !== undefined);
|
||||||
assertFalse(iterator_desc.writable);
|
assertFalse(iterator_desc.writable);
|
||||||
|
Loading…
Reference in New Issue
Block a user