Bug 857836 - Assertion failure: paTypeObject->getPropertyCount() == NumFixedSlots, at builtin/ParallelArray.cpp. r=bhackett
authorShu-yu Guo <shu@rfrn.org>
Fri, 12 Apr 2013 23:04:52 -0400
changeset 128692 0867fa1dfe4bc9ed03e36f50d7df26d370782fea
parent 128691 ffa16f20870a3cb2bc27f2c089022fcbbe4d061e
child 128693 4887d47d1f254c2345aa75af933a3fcc0bd83be6
push id24537
push userphilringnalda@gmail.com
push dateSun, 14 Apr 2013 01:27:08 +0000
treeherdermozilla-central@ef802a6418f2 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbhackett
bugs857836
milestone23.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 857836 - Assertion failure: paTypeObject->getPropertyCount() == NumFixedSlots, at builtin/ParallelArray.cpp. r=bhackett
js/src/builtin/ParallelArray.cpp
--- a/js/src/builtin/ParallelArray.cpp
+++ b/js/src/builtin/ParallelArray.cpp
@@ -150,17 +150,17 @@ ParallelArrayObject::constructHelper(JSC
             // created.  To tell if it is newly created, we check whether it
             // has any properties yet or not, since any returned type object
             // must have been created by this same C++ code and hence would
             // already have properties if it had been returned before.
             types::TypeObject *paTypeObject =
                 types::TypeScript::InitObject(cx, script, pc, JSProto_ParallelArray);
             if (!paTypeObject)
                 return false;
-            if (paTypeObject->getPropertyCount() == 0) {
+            if (paTypeObject->getPropertyCount() == 0 && !paTypeObject->unknownProperties()) {
                 if (!paTypeObject->addDefiniteProperties(cx, result))
                     return false;
 
                 // addDefiniteProperties() above should have added one
                 // property for each of the fixed slots:
                 JS_ASSERT(paTypeObject->getPropertyCount() == NumFixedSlots);
             }
             result->setType(paTypeObject);