Reviewers: Michael Achenbach,
Description:
Version 4.1.0.20 (cherry-pick)
Merged 4c082b570da7f53f8f650764b513705f08c62093
Make generator constructors configurable
BUG=v8:3902
LOG=N
[email protected]
Please review this at https://codereview.chromium.org/950613002/
Base URL: https://chromium.googlesource.com/v8/[email protected]
Affected files (+18, -3 lines):
M src/generator.js
M src/version.cc
A test/mjsunit/es6/regress/regress-3902.js
Index: src/generator.js
diff --git a/src/generator.js b/src/generator.js
index
8e9ed8f2566a7e8088e8cb26e1018967d8d9d0f2..9ab7dcb9aab9b78baea82ca749ce129a5350be75
100644
--- a/src/generator.js
+++ b/src/generator.js
@@ -97,7 +97,7 @@ function SetUpGenerators() {
%AddNamedProperty(GeneratorObjectPrototype, symbolIterator,
GeneratorObjectIterator, DONT_ENUM | DONT_DELETE | READ_ONLY);
%AddNamedProperty(GeneratorObjectPrototype, "constructor",
- GeneratorFunctionPrototype, DONT_ENUM | DONT_DELETE | READ_ONLY);
+ GeneratorFunctionPrototype, DONT_ENUM | READ_ONLY);
%AddNamedProperty(GeneratorObjectPrototype,
symbolToStringTag, "Generator", DONT_ENUM | READ_ONLY);
%InternalSetPrototype(GeneratorFunctionPrototype, $Function.prototype);
@@ -105,7 +105,7 @@ function SetUpGenerators() {
symbolToStringTag, "GeneratorFunction", DONT_ENUM | READ_ONLY);
%SetCode(GeneratorFunctionPrototype,
GeneratorFunctionPrototypeConstructor);
%AddNamedProperty(GeneratorFunctionPrototype, "constructor",
- GeneratorFunction, DONT_ENUM | DONT_DELETE | READ_ONLY);
+ GeneratorFunction, DONT_ENUM | READ_ONLY);
%InternalSetPrototype(GeneratorFunction, $Function);
%SetCode(GeneratorFunction, GeneratorFunctionConstructor);
}
Index: src/version.cc
diff --git a/src/version.cc b/src/version.cc
index
9f1998b3d81cdc8ae3bb5c481b3e34f7d9b3d8c7..9e6c767b9ccc46ece67db16e751bad7904db2513
100644
--- a/src/version.cc
+++ b/src/version.cc
@@ -35,7 +35,7 @@
#define MAJOR_VERSION 4
#define MINOR_VERSION 1
#define BUILD_NUMBER 0
-#define PATCH_LEVEL 19
+#define PATCH_LEVEL 20
// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
#define IS_CANDIDATE_VERSION 0
Index: test/mjsunit/es6/regress/regress-3902.js
diff --git a/test/mjsunit/es6/regress/regress-3902.js
b/test/mjsunit/es6/regress/regress-3902.js
new file mode 100644
index
0000000000000000000000000000000000000000..768a4a1d075e383d39569905f2aec04aef657503
--- /dev/null
+++ b/test/mjsunit/es6/regress/regress-3902.js
@@ -0,0 +1,15 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+function* g() {}
+assertTrue(Object.getOwnPropertyDescriptor(g.__proto__,
"constructor").configurable);
+assertTrue(Object.getOwnPropertyDescriptor(g.prototype.__proto__,
"constructor").configurable);
+
+function FakeGeneratorFunctionConstructor() {}
+Object.defineProperty(g.__proto__, "constructor", {value:
FakeGeneratorFunctionConstructor});
+assertSame(g.__proto__.constructor, FakeGeneratorFunctionConstructor);
+
+function FakeGeneratorObjectConstructor() {}
+Object.defineProperty(g.prototype.__proto__, "constructor", {value:
FakeGeneratorObjectConstructor});
+assertSame(g.prototype.__proto__.constructor,
FakeGeneratorObjectConstructor);
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.