[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.19-706-ge5415e9

mrowe at apple.com mrowe at apple.com
Thu Feb 4 21:33:14 UTC 2010


The following commit has been merged in the webkit-1.1 branch:
commit 262eea15fd08c1198dc574ac9adab210521bb0ec
Author: mrowe at apple.com <mrowe at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sat Jan 30 05:30:33 2010 +0000

    Roll out r54073 as it introduced many thousands of leaks.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@54100 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index 4572f31..4f5055f 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -10,26 +10,6 @@
 
         * Configurations/FeatureDefines.xcconfig:
 
-2010-01-29  Oliver Hunt  <oliver at apple.com>
-
-        Reviewed by Darin Adler.
-
-        JSC is failing to propagate anonymous slot count on some transitions
-        https://bugs.webkit.org/show_bug.cgi?id=34321
-
-        Remove the unsafe two argument Structure::create method, and correct
-        the uses of it to propagate the anonymous slot count.
-
-        * runtime/JSObject.h:
-        (JSC::JSObject::setStructure):
-        * runtime/Structure.cpp:
-        (JSC::Structure::addPropertyTransition):
-        (JSC::Structure::changePrototypeTransition):
-        (JSC::Structure::despecifyFunctionTransition):
-        (JSC::Structure::getterSetterTransition):
-        (JSC::Structure::toDictionaryTransition):
-        * runtime/Structure.h:
-
 2010-01-29  Simon Hausmann  <simon.hausmann at nokia.com>
 
         Rubber-stamped by Maciej Stachowiak.
diff --git a/JavaScriptCore/runtime/JSObject.h b/JavaScriptCore/runtime/JSObject.h
index 652eb76..2b31a65 100644
--- a/JavaScriptCore/runtime/JSObject.h
+++ b/JavaScriptCore/runtime/JSObject.h
@@ -315,7 +315,6 @@ inline void JSObject::setPrototype(JSValue prototype)
 
 inline void JSObject::setStructure(NonNullPassRefPtr<Structure> structure)
 {
-    ASSERT(structure->anonymousSlotCount() == m_structure->anonymousSlotCount());
     m_structure->deref();
     m_structure = structure.releaseRef(); // ~JSObject balances this ref()
 }
diff --git a/JavaScriptCore/runtime/Structure.cpp b/JavaScriptCore/runtime/Structure.cpp
index eeea172..77330aa 100644
--- a/JavaScriptCore/runtime/Structure.cpp
+++ b/JavaScriptCore/runtime/Structure.cpp
@@ -366,7 +366,7 @@ PassRefPtr<Structure> Structure::addPropertyTransition(Structure* structure, con
         return transition.release();
     }
 
-    RefPtr<Structure> transition = create(structure->m_prototype, structure->typeInfo(), structure->anonymousSlotCount());
+    RefPtr<Structure> transition = create(structure->m_prototype, structure->typeInfo());
 
     transition->m_cachedPrototypeChain = structure->m_cachedPrototypeChain;
     transition->m_previous = structure;
@@ -415,7 +415,7 @@ PassRefPtr<Structure> Structure::removePropertyTransition(Structure* structure,
 
 PassRefPtr<Structure> Structure::changePrototypeTransition(Structure* structure, JSValue prototype)
 {
-    RefPtr<Structure> transition = create(prototype, structure->typeInfo(), structure->anonymousSlotCount());
+    RefPtr<Structure> transition = create(prototype, structure->typeInfo());
 
     transition->m_propertyStorageCapacity = structure->m_propertyStorageCapacity;
     transition->m_hasGetterSetterProperties = structure->m_hasGetterSetterProperties;
@@ -434,7 +434,7 @@ PassRefPtr<Structure> Structure::changePrototypeTransition(Structure* structure,
 PassRefPtr<Structure> Structure::despecifyFunctionTransition(Structure* structure, const Identifier& replaceFunction)
 {
     ASSERT(structure->m_specificFunctionThrashCount < maxSpecificFunctionThrashCount);
-    RefPtr<Structure> transition = create(structure->storedPrototype(), structure->typeInfo(), structure->anonymousSlotCount());
+    RefPtr<Structure> transition = create(structure->storedPrototype(), structure->typeInfo());
 
     transition->m_propertyStorageCapacity = structure->m_propertyStorageCapacity;
     transition->m_hasGetterSetterProperties = structure->m_hasGetterSetterProperties;
@@ -459,7 +459,7 @@ PassRefPtr<Structure> Structure::despecifyFunctionTransition(Structure* structur
 
 PassRefPtr<Structure> Structure::getterSetterTransition(Structure* structure)
 {
-    RefPtr<Structure> transition = create(structure->storedPrototype(), structure->typeInfo(), structure->anonymousSlotCount());
+    RefPtr<Structure> transition = create(structure->storedPrototype(), structure->typeInfo());
     transition->m_propertyStorageCapacity = structure->m_propertyStorageCapacity;
     transition->m_hasGetterSetterProperties = transition->m_hasGetterSetterProperties;
     transition->m_hasNonEnumerableProperties = structure->m_hasNonEnumerableProperties;
@@ -478,7 +478,7 @@ PassRefPtr<Structure> Structure::toDictionaryTransition(Structure* structure, Di
 {
     ASSERT(!structure->isUncacheableDictionary());
     
-    RefPtr<Structure> transition = create(structure->m_prototype, structure->typeInfo(), structure->anonymousSlotCount());
+    RefPtr<Structure> transition = create(structure->m_prototype, structure->typeInfo());
     transition->m_dictionaryKind = kind;
     transition->m_propertyStorageCapacity = structure->m_propertyStorageCapacity;
     transition->m_hasGetterSetterProperties = structure->m_hasGetterSetterProperties;
diff --git a/JavaScriptCore/runtime/Structure.h b/JavaScriptCore/runtime/Structure.h
index d9f1411..f73f9b8 100644
--- a/JavaScriptCore/runtime/Structure.h
+++ b/JavaScriptCore/runtime/Structure.h
@@ -147,6 +147,11 @@ namespace JSC {
         void getPropertyNames(PropertyNameArray&, EnumerationMode mode);
         
     private:
+        static PassRefPtr<Structure> create(JSValue prototype, const TypeInfo& typeInfo)
+        {
+            return adoptRef(new Structure(prototype, typeInfo));
+        }
+
         Structure(JSValue prototype, const TypeInfo&);
         
         typedef enum { 
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 9492c16..bb42735 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -45,18 +45,6 @@
         * platform/mac/fast/backgrounds/size/backgroundSize16-expected.checksum:
         * platform/mac/fast/backgrounds/size/backgroundSize16-expected.png:
 
-2010-01-29  Oliver Hunt  <oliver at apple.com>
-
-        Reviewed by Darin Adler.
-
-        JSC is failing to propagate anonymous slot count on some transitions
-        https://bugs.webkit.org/show_bug.cgi?id=34321
-
-        Add a test for modification of a type with anonymous slots.
-
-        * fast/dom/Window/anonymous-slot-with-changes-expected.txt: Added.
-        * fast/dom/Window/anonymous-slot-with-changes.html: Added.
-
 2010-01-29  Philippe Normand  <pnormand at igalia.com>
 
         Unreviewed, build fix.
diff --git a/LayoutTests/fast/dom/Window/anonymous-slot-with-changes-expected.txt b/LayoutTests/fast/dom/Window/anonymous-slot-with-changes-expected.txt
deleted file mode 100644
index bc04a1e..0000000
--- a/LayoutTests/fast/dom/Window/anonymous-slot-with-changes-expected.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Tests that we clone object hierarchies
-PASS: eventData is null of type object
-PASS: eventData is undefined of type undefined
-PASS: eventData is 1 of type number
-PASS: eventData is true of type boolean
-PASS: eventData is 1 of type string
-PASS: eventData is [object Object] of type object
-PASS: eventData is [object Object] of type object
-PASS: eventData is of type object
-PASS: eventData is 1,2,3 of type object
-PASS: eventData is ,,1 of type object
-PASS: eventData is null of type object
-PASS: eventData is 2009-02-13T23:31:30.000Z of type object
-PASS: eventData is done of type string
-
diff --git a/LayoutTests/fast/dom/Window/anonymous-slot-with-changes.html b/LayoutTests/fast/dom/Window/anonymous-slot-with-changes.html
deleted file mode 100644
index a83d259..0000000
--- a/LayoutTests/fast/dom/Window/anonymous-slot-with-changes.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<html>
-<head></head>
-<body>
-<div id="description"></div>
-<div id="console"></div>
-<input type="file" id="fileInput"></input>
-<script>
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-var console = document.getElementById("console");
-
-var messages = [];
-
-function equal(actual, expected)
-{
-    if (typeof actual !== typeof expected)
-        return false;
-    if (actual === expected)
-        return true;
-    if ((actual instanceof Date) || (expected instanceof Date)) {
-        if ((actual instanceof Date) && (expected instanceof Date))
-            return (expected instanceof Date) && actual.getTime() == expected.getTime();
-        return false;
-    }
-    if (Array.isArray(actual) || Array.isArray(expected)) {
-        if (!Array.isArray(actual) || !Array.isArray(expected))
-            return false;
-        if (actual.length != expected.length)
-            return false;
-        for (var i = 0; i < actual.length; i++) {
-            if ((i in actual) ^ (i in expected))
-                return false;
-            if (!equal(actual[i], expected[i]))
-                return false;
-        }
-        return true;
-    }
-    if (actual.constructor !== expected.constructor)
-        return false;
-    var keys = Object.keys(actual);
-    if (!equal(keys, Object.keys(expected)))
-        return false;
-    for (var i = 0; i < keys.length; i++) {
-        if (!equal(actual[keys[i]], expected[keys[i]]))
-            return false;
-    }
-    return true;
-}
-
-function safeToString(o) {
-    if (o instanceof Date)
-        return o.toISOString();
-    if (typeof o !== "object" || !o)
-        return o;
-    try {
-        return o.toString();
-    } catch (e) {
-        return Object.prototype.toString.call(o) + "(default toString threw "+e+")";
-    }
-}
-
-function shouldBe(actual, expected)
-{
-    var actualValue = eval(actual);
-    var expectedValue = eval(expected);
-    if (equal(actualValue, expectedValue))
-        console.innerHTML += "PASS: " + actual + " is " + safeToString(expectedValue) + " of type " + typeof actualValue + "<br>";
-    else
-        console.innerHTML += "FAIL: " + actual + " is " + actualValue + " should be " + expectedValue + " of type " + typeof expectedValue + "<br>";
-}
-
-function onmessage(evt) {
-    evt.foo = "bar"; // add a property.
-    eventData = evt.data;
-    shouldBe("eventData", messages.shift());
-
-    if (safeToString(evt.data) == 'done' && window.layoutTestController)
-        layoutTestController.notifyDone();
-}
-
-window.addEventListener('message', onmessage, false);
-
-function tryPostMessage(message, shouldThrow, expected) {
-    try {
-        var value = eval(message);
-        postMessage(value, "*");
-        if (shouldThrow)
-            console.innerHTML += "FAIL: 'postMessage("+message+")' should throw but didn't<br>";
-        messages.push(expected || message);
-    } catch(e) {
-        if (shouldThrow)
-            console.innerHTML += "PASS: 'postMessage("+message+")' threw " + e + "<br>";
-        else
-            console.innerHTML += "FAIL: 'postMessage("+message+")' should not throw but threw " + e + "<br>";
-    }
-}
-
-document.getElementById("description").innerHTML = "Tests that we clone object hierarchies";
-
-tryPostMessage('null');
-tryPostMessage('undefined');
-tryPostMessage('1');
-tryPostMessage('true');
-tryPostMessage('"1"');
-tryPostMessage('({})');
-tryPostMessage('({a:1})');
-tryPostMessage('[]');
-tryPostMessage('[1,2,3]');
-tryPostMessage('[,,1]');
-tryPostMessage('(function(){})', false, 'null');
-tryPostMessage('new Date(1234567890000)');
-tryPostMessage('"done"');
-</script>
-</body>
-</html>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index a2ac986..265eefb 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -287,19 +287,6 @@
         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
         * rendering/RenderBoxModelObject.h:
 
-2010-01-29  Oliver Hunt  <oliver at apple.com>
-
-        Reviewed by Darin Adler.
-
-        JSC is failing to propagate anonymous slot count on some transitions
-        https://bugs.webkit.org/show_bug.cgi?id=34321
-
-        Make code generator add assertions for anonymous slot count.
-
-        Test: fast/dom/Window/anonymous-slot-with-changes.html
-
-        * bindings/scripts/CodeGeneratorJS.pm:
-
 2010-01-29  Tony Chang  <tony at chromium.org>
 
         Reviewed by Darin Adler.
diff --git a/WebCore/bindings/scripts/CodeGeneratorJS.pm b/WebCore/bindings/scripts/CodeGeneratorJS.pm
index ed5293e..7a55a3d 100644
--- a/WebCore/bindings/scripts/CodeGeneratorJS.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorJS.pm
@@ -1185,7 +1185,6 @@ sub GenerateImplementation
         }
     }
     push(@implContent, "{\n");
-    push(@implContent, "    ASSERT(static_cast<int>(this->structure()->anonymousSlotCount()) >= static_cast<int>(AnonymousSlotCount));\n");
     if ($numCachedAttributes > 0) {
         push(@implContent, "    for (unsigned i = Base::AnonymousSlotCount; i < AnonymousSlotCount; i++)\n");
         push(@implContent, "        putAnonymousValue(i, JSValue());\n");

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list