Merge
authorRobert Sayre <sayrer@gmail.com>
Mon, 20 Sep 2010 11:10:00 -0400
changeset 54424 7e222b518b300e5dc67f45fcf175179f0e05f348
parent 54423 a90b819fa516592a416f0f1bdadcf5c7e474ce12 (current diff)
parent 54422 ed934a5f7ef1391d3dc093fdecad812f4d86609d (diff)
child 54425 09ffb30caa47adebb50ed58aa12a4c83ce8fb564
push idunknown
push userunknown
push dateunknown
milestone2.0b7pre
Merge
--- a/js/src/jsopcode.cpp
+++ b/js/src/jsopcode.cpp
@@ -2093,16 +2093,19 @@ Decompile(SprintStack *ss, jsbytecode *p
                              */
                             break;
                           case JSOP_GETARGPROP:
                             op = JSOP_GETARG;
                             break;
                           case JSOP_GETLOCALPROP:
                             op = JSOP_GETLOCAL;
                             break;
+                          case JSOP_SETXMLNAME:
+                            op = JSOp(JSOP_GETELEM2);
+                            break;
                           default:
                             LOCAL_ASSERT(0);
                         }
                     }
                 }
             }
 
             saveop = op;
--- a/js/src/jsscope.cpp
+++ b/js/src/jsscope.cpp
@@ -551,17 +551,17 @@ Shape::newDictionaryList(JSContext *cx, 
 {
     Shape *shape = *listp;
     Shape *list = shape;
 
     Shape **childp = listp;
     *childp = NULL;
 
     while (shape) {
-        JS_ASSERT(!shape->inDictionary());
+        JS_ASSERT_IF(!shape->frozen(), !shape->inDictionary());
 
         Shape *dprop = Shape::newDictionaryShape(cx, *shape, childp);
         if (!dprop) {
             METER(toDictFails);
             *listp = list;
             return NULL;
         }
 
--- a/js/src/tests/js1_8_5/regress/jstests.list
+++ b/js/src/tests/js1_8_5/regress/jstests.list
@@ -25,16 +25,18 @@ script regress-567152.js
 script regress-569306.js
 script regress-571014.js
 script regress-577648-1.js
 script regress-577648-2.js
 script regress-583429.js
 script regress-584355.js
 script regress-588339.js
 script regress-yarr-regexp.js
+script regress-592217.js
 script regress-592556-c35.js
 script regress-593256.js
 fails-if(!xulRuntime.shell) script regress-595230-1.js
 fails-if(!xulRuntime.shell) script regress-595230-2.js
 script regress-595365-1.js
 fails-if(!xulRuntime.shell) script regress-595365-2.js
 script regress-569464.js
 script regress-596103.js
+script regress-597870.js
new file mode 100644
--- /dev/null
+++ b/js/src/tests/js1_8_5/regress/regress-592217.js
@@ -0,0 +1,11 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/*
+ * Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/licenses/publicdomain/
+ */
+
+(function ([b]) {
+  default xml namespace = 7
+})(0)
+
+reportCompare(0, 0, "ok");
new file mode 100644
--- /dev/null
+++ b/js/src/tests/js1_8_5/regress/regress-597870.js
@@ -0,0 +1,22 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/*
+ * Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/licenses/publicdomain/
+ */
+
+try {
+  (function() {
+    __defineSetter__("x", Math.sin);
+  } ());
+  function::x =
+    Proxy.createFunction(function() {
+        return {
+          get: function() {
+            return [];
+          }
+        };
+      } (),
+      function() {});
+} catch(e) {}
+
+reportCompare(0, 0, "ok");