Reviewers: Toon Verwaest,
Description:
Merged r12569 into trunk branch.
Fix CNLT for enum indices.
[email protected]
Please review this at https://chromiumcodereview.appspot.com/10957018/
SVN Base: https://v8.googlecode.com/svn/trunk
Affected files:
M src/objects.h
M src/version.cc
A + test/mjsunit/regress/regress-cnlt-enum-indices.js
Index: src/objects.h
diff --git a/src/objects.h b/src/objects.h
index
141db175e97706461bf4d5491c4bd45e8656e4e7..5c607fe349a630919f759171d7060943d75272a6
100644
--- a/src/objects.h
+++ b/src/objects.h
@@ -2528,7 +2528,7 @@ class DescriptorArray: public FixedArray {
Object* object = get(kEnumCacheIndex);
if (object->IsSmi()) return false;
FixedArray* bridge = FixedArray::cast(object);
- return bridge->get(kEnumCacheBridgeIndicesCacheIndex)->IsSmi();
+ return !bridge->get(kEnumCacheBridgeIndicesCacheIndex)->IsSmi();
}
FixedArray* GetEnumIndicesCache() {
Index: src/version.cc
diff --git a/src/version.cc b/src/version.cc
index
477d925f221dc22e6685e3df079ee8649947001f..21e4e6ed84e7c929d2ec90b6c4e602ed8f386ce1
100644
--- a/src/version.cc
+++ b/src/version.cc
@@ -35,7 +35,7 @@
#define MAJOR_VERSION 3
#define MINOR_VERSION 14
#define BUILD_NUMBER 0
-#define PATCH_LEVEL 0
+#define PATCH_LEVEL 1
// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
#define IS_CANDIDATE_VERSION 0
Index: test/mjsunit/regress/regress-cnlt-enum-indices.js
diff --git a/test/mjsunit/regress/regress-cntl-descriptors-enum.js
b/test/mjsunit/regress/regress-cnlt-enum-indices.js
similarity index 87%
copy from test/mjsunit/regress/regress-cntl-descriptors-enum.js
copy to test/mjsunit/regress/regress-cnlt-enum-indices.js
index
ee72fafc8a7c67f2b1ab6cc22a734ef8033a5697..03582bbbe424b10487fab13a6473e9b62781845e
100644
--- a/test/mjsunit/regress/regress-cntl-descriptors-enum.js
+++ b/test/mjsunit/regress/regress-cnlt-enum-indices.js
@@ -27,20 +27,19 @@
// Flags: --allow-natives-syntax --expose-gc
-DontEnum = 2;
-
var o = {};
-%SetProperty(o, "a", 0, DontEnum);
-
var o2 = {};
-%SetProperty(o2, "a", 0, DontEnum);
+o.a = 1;
+o2.a = 1;
+function f() { return 10; }
+// Adds a non-field enumerable property.
+Object.defineProperty(o, "b", { get: f, enumerable: true });
+Object.defineProperty(o2, "b", { get: f, enumerable: true });
assertTrue(%HaveSameMap(o, o2));
+o.c = 2;
-o.y = 2;
+for (var x in o) { }
+o = null;
-for (var v in o) { print(v); }
-o = {};
gc();
-
-for (var v in o2) { print(v); }
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev