Title: [111942] releases/WebKitGTK/webkit-1.8

Diff

Modified: releases/WebKitGTK/webkit-1.8/LayoutTests/ChangeLog (111941 => 111942)


--- releases/WebKitGTK/webkit-1.8/LayoutTests/ChangeLog	2012-03-24 00:34:32 UTC (rev 111941)
+++ releases/WebKitGTK/webkit-1.8/LayoutTests/ChangeLog	2012-03-24 00:44:29 UTC (rev 111942)
@@ -1,3 +1,15 @@
+2012-03-23  Oliver Hunt  <[email protected]>
+
+        REGRESSION (r108112): AWS Management Console at amazon.com fails to initialize
+        https://bugs.webkit.org/show_bug.cgi?id=79693
+
+        Reviewed by Filip Pizlo.
+
+        Update test case to handle Error.stack being a string rather than an array.
+
+        * fast/js/script-tests/stack-trace.js:
+        (printStack):
+
 2012-03-23  Abhishek Arya  <[email protected]>
 
         Regression(r107477): Crash in StaticNodeList::itemWithName.

Modified: releases/WebKitGTK/webkit-1.8/LayoutTests/fast/js/script-tests/stack-trace.js (111941 => 111942)


--- releases/WebKitGTK/webkit-1.8/LayoutTests/fast/js/script-tests/stack-trace.js	2012-03-24 00:34:32 UTC (rev 111941)
+++ releases/WebKitGTK/webkit-1.8/LayoutTests/fast/js/script-tests/stack-trace.js	2012-03-24 00:44:29 UTC (rev 111942)
@@ -9,6 +9,7 @@
 
 function printStack(stackTrace) {
     debug("--> Stack Trace:")
+    stackTrace = stackTrace.split("\n");
     var length = Math.min(stackTrace.length, 100);
     for (var i = 0; i < length; i++) {
         var indexOfAt = stackTrace[i].indexOf('@')
@@ -21,7 +22,6 @@
     }
     debug('');
 }
-
 function hostThrower() { Element.prototype.appendChild.call({ }, [{ }]);  }
 function callbacker(f) { [0].map(f); }
 function outer(errorName) { inner(errorName); }

Modified: releases/WebKitGTK/webkit-1.8/Source/_javascript_Core/ChangeLog (111941 => 111942)


--- releases/WebKitGTK/webkit-1.8/Source/_javascript_Core/ChangeLog	2012-03-24 00:34:32 UTC (rev 111941)
+++ releases/WebKitGTK/webkit-1.8/Source/_javascript_Core/ChangeLog	2012-03-24 00:44:29 UTC (rev 111942)
@@ -1,3 +1,20 @@
+2012-03-23  Oliver Hunt  <[email protected]>
+
+        REGRESSION (r108112): AWS Management Console at amazon.com fails to initialize
+        https://bugs.webkit.org/show_bug.cgi?id=79693
+
+        Reviewed by Filip Pizlo.
+
+        Alas we can't provide the stack trace as an array, as despite everyone wanting
+        an array, everyone arbitrarily creates the array by calling split on the stack
+        trace.  To create the array we would have provided them in the first place.
+
+        This changes the exception's stack property to a \n separated string.  To get the
+        old array just do <exception>.stack.split("\n").
+
+        * runtime/Error.cpp:
+        (JSC::addErrorInfo):
+
 2012-03-05  Mario Sanchez Prada  <[email protected]>
 
         [GTK] Add GMainLoop and GMainContext to be handled by GRefPtr

Modified: releases/WebKitGTK/webkit-1.8/Source/_javascript_Core/runtime/Error.cpp (111941 => 111942)


--- releases/WebKitGTK/webkit-1.8/Source/_javascript_Core/runtime/Error.cpp	2012-03-24 00:34:32 UTC (rev 111941)
+++ releases/WebKitGTK/webkit-1.8/Source/_javascript_Core/runtime/Error.cpp	2012-03-24 00:44:29 UTC (rev 111942)
@@ -35,6 +35,7 @@
 #include "JSString.h"
 #include "NativeErrorConstructor.h"
 #include "SourceCode.h"
+#include "StringBuilder.h"
 
 namespace JSC {
 
@@ -132,20 +133,14 @@
             globalObject = globalData->dynamicGlobalObject;
         else
             globalObject = error->globalObject();
-        // We use the tryCreateUninitialized creation mechanism and related initialization
-        // functions as they're the only mechanism we currently have that will guarantee we
-        // don't call setters on the prototype. Technically it's faster than the alternative,
-        // but the numerous allocations that take place in this loop makes that last bit
-        // somewhat moot.
-        JSArray* stackTraceArray = JSArray::tryCreateUninitialized(*globalData, globalObject->arrayStructure(), stackTrace.size());
-        if (!stackTraceArray)
-            return error;
+        StringBuilder builder;
         for (unsigned i = 0; i < stackTrace.size(); i++) {
-            UString stackLevel = stackTrace[i].toString(globalObject->globalExec());
-            stackTraceArray->initializeIndex(*globalData, i, jsString(globalData, stackLevel));
+            builder.append(String(stackTrace[i].toString(globalObject->globalExec()).impl()));
+            if (i != stackTrace.size() - 1)
+                builder.append('\n');
         }
-        stackTraceArray->completeInitialization(stackTrace.size());
-        error->putDirect(*globalData, globalData->propertyNames->stack, stackTraceArray, ReadOnly | DontDelete);
+
+        error->putDirect(*globalData, globalData->propertyNames->stack, jsString(globalData, UString(builder.toString().impl())), ReadOnly | DontDelete);
     }
 
     return error;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to