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.

Reply via email to