Bug 20104: Exception in tables/mozilla_expected_failures/bugs/bug92868_1.html include...
authoroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 20 Jul 2008 05:29:44 +0000 (05:29 +0000)
committeroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 20 Jul 2008 05:29:44 +0000 (05:29 +0000)
<https://bugs.webkit.org/show_bug.cgi?id=20104>

Reviewed by Cameron Zwarich

To make this correct we make the dot and bracket assign nodes emit the information to indicate
the failure range is the dot/bracket accessor.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@35250 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/kjs/grammar.y
LayoutTests/ChangeLog
LayoutTests/fast/css/font-face-descriptor-multiple-values-parsing-expected.txt
LayoutTests/fast/js/resources/exception-expression-offset.js
LayoutTests/http/tests/security/cross-frame-access-call-expected.txt
LayoutTests/http/tests/security/cross-frame-access-call.html
LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug92868_1-expected.txt

index e38f635..cdb1a50 100644 (file)
@@ -1,3 +1,15 @@
+2008-07-19  Oliver Hunt  <oliver@apple.com>
+
+        Reviewed by Cameron Zwarich.
+
+        Bug 20104: Exception in tables/mozilla_expected_failures/bugs/bug92868_1.html includes the equals operator in the quoted expression
+        <https://bugs.webkit.org/show_bug.cgi?id=20104>
+
+        To make this correct we make the dot and bracket assign nodes emit the information to indicate
+        the failure range is the dot/bracket accessor.
+
+        * kjs/grammar.y:
+
 2008-07-18  Steve Falkenburg  <sfalken@apple.com>
 
         Windows build fix.
index ec970c9..a9e55f8 100644 (file)
@@ -1211,7 +1211,7 @@ static ExpressionNode* makeAssignNode(void* globalPtr, ExpressionNode* loc, Oper
     if (loc->isBracketAccessorNode()) {
         BracketAccessorNode* bracket = static_cast<BracketAccessorNode*>(loc);
         if (op == OpEqual)
-            return new AssignBracketNode(GLOBAL_DATA, bracket->base(), bracket->subscript(), expr, locHasAssignments, exprHasAssignments, divot, divot - start, end - divot);
+            return new AssignBracketNode(GLOBAL_DATA, bracket->base(), bracket->subscript(), expr, locHasAssignments, exprHasAssignments, bracket->divot(), bracket->divot() - start, end - bracket->divot());
         else {
             ReadModifyBracketNode* node = new ReadModifyBracketNode(GLOBAL_DATA, bracket->base(), bracket->subscript(), op, expr, locHasAssignments, exprHasAssignments, divot, divot - start, end - divot);
             node->setSubexpressionInfo(bracket->divot(), bracket->endOffset());
@@ -1221,7 +1221,7 @@ static ExpressionNode* makeAssignNode(void* globalPtr, ExpressionNode* loc, Oper
     ASSERT(loc->isDotAccessorNode());
     DotAccessorNode* dot = static_cast<DotAccessorNode*>(loc);
     if (op == OpEqual)
-        return new AssignDotNode(GLOBAL_DATA, dot->base(), dot->identifier(), expr, exprHasAssignments, divot, divot - start, end - divot);
+        return new AssignDotNode(GLOBAL_DATA, dot->base(), dot->identifier(), expr, exprHasAssignments, dot->divot(), dot->divot() - start, end - dot->divot());
 
     ReadModifyDotNode* node = new ReadModifyDotNode(GLOBAL_DATA, dot->base(), dot->identifier(), op, expr, exprHasAssignments, divot, divot - start, end - divot);
     node->setSubexpressionInfo(dot->divot(), dot->endOffset());
index 654d7f2..771f787 100644 (file)
@@ -1,3 +1,16 @@
+2008-07-19  Oliver Hunt  <oliver@apple.com>
+
+        Reviewed by Cameron Zwarich.
+
+        Update a few tests i filed to correct in the last patch, and add tests for
+        assignment error position.
+
+        * fast/css/font-face-descriptor-multiple-values-parsing-expected.txt:
+        * fast/js/resources/exception-expression-offset.js:
+        * http/tests/security/cross-frame-access-call-expected.txt:
+        * http/tests/security/cross-frame-access-call.html:
+        * platform/mac/tables/mozilla_expected_failures/bugs/bug92868_1-expected.txt:
+
 2008-07-18  Oliver Hunt  <oliver@apple.com>
 
         Reviewed by Cameron Zwarich.
index 1b5e30e..4e5b5c8 100644 (file)
@@ -8,23 +8,23 @@ PASS test("font-weight", "all") is "all"
 PASS test("font-weight", "100, 200") is "100, 200"
 PASS test("font-weight", "bold, normal") is "bold, normal"
 PASS test("font-weight", "100, 200, 300, 400, 500, 600, 700, 100") is "100, 200, 300, 400, 500, 600, 700, 100"
-PASS test("font-weight", "all, 100") threw exception TypeError: Null value.
-PASS test("font-weight", "bold, normal, all") threw exception TypeError: Null value.
-PASS test("font-weight", "") threw exception TypeError: Null value.
+PASS test("font-weight", "all, 100") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
+PASS test("font-weight", "bold, normal, all") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
+PASS test("font-weight", "") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
 PASS test("font-style", "normal") is "normal"
 PASS test("font-style", "italic") is "italic"
 PASS test("font-style", "normal, oblique") is "normal, oblique"
 PASS test("font-style", "all") is "all"
-PASS test("font-style", "all, normal") threw exception TypeError: Null value.
-PASS test("font-style", "italic, all") threw exception TypeError: Null value.
-PASS test("font-style", "") threw exception TypeError: Null value.
+PASS test("font-style", "all, normal") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
+PASS test("font-style", "italic, all") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
+PASS test("font-style", "") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
 PASS test("font-variant", "normal") is "normal"
 PASS test("font-variant", "small-caps") is "small-caps"
 PASS test("font-variant", "normal, small-caps") is "normal, small-caps"
 PASS test("font-variant", "all") is "all"
-PASS test("font-variant", "all, normal") threw exception TypeError: Null value.
-PASS test("font-variant", "small-caps, all") threw exception TypeError: Null value.
-PASS test("font-variant", "") threw exception TypeError: Null value.
+PASS test("font-variant", "all, normal") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
+PASS test("font-variant", "small-caps, all") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
+PASS test("font-variant", "") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 5f45167..79d0376 100644 (file)
@@ -34,5 +34,13 @@ testException("1 in undefined", 0, 5, 14, "Result of expression 'undefined' [und
 testException("1 instanceof undefined", 0, 13, 22, "Result of expression 'undefined' [undefined] is not a valid argument for 'instanceof'.");
 testException("for (undefined.b in [1]) {}", 5, 14, 16, "Result of expression 'undefined' [undefined] is not an object.");
 testException("for (undefined[0] in [1]) {}", 5, 14, 17, "Result of expression 'undefined' [undefined] is not an object.");
+testException("undefined.a = 5", 0, 9, 15, "Result of expression 'undefined' [undefined] is not an object.");
+testException("undefined[0] = 5", 0, 9, 16, "Result of expression 'undefined' [undefined] is not an object.");
+testException("({b:undefined}).b.a = 5", 0, 17, 23, "Result of expression '({b:undefined}).b' [undefined] is not an object.");
+testException("({b:undefined}).b[0] = 5", 0, 17, 24, "Result of expression '({b:undefined}).b' [undefined] is not an object.");
+testException("undefined.a += 5", 0, 9, 11, "Result of expression 'undefined' [undefined] is not an object.");
+testException("undefined[0] += 5", 0, 9, 12, "Result of expression 'undefined' [undefined] is not an object.");
+testException("({b:undefined}).b.a += 5", 0, 17, 19, "Result of expression '({b:undefined}).b' [undefined] is not an object.");
+testException("({b:undefined}).b[0] += 5", 0, 17, 20, "Result of expression '({b:undefined}).b' [undefined] is not an object.");
 
 var successfullyParsed = true;
index 01546b3..394c95e 100644 (file)
@@ -82,6 +82,6 @@ PASS: window.moveBy.call(targetWindow, 0, 0); should be 'undefined' and is.
 PASS: window.moveTo.call(targetWindow, 0, 0); should be 'undefined' and is.
 PASS: window.resizeBy.call(targetWindow, 0, 0); should be 'undefined' and is.
 PASS: window.resizeTo.call(targetWindow, 0, 0); should be 'undefined' and is.
-PASS: window.showModalDialog.call(targetWindow); should be 'TypeError: Undefined value' and is.
+PASS: window.showModalDialog.call(targetWindow); should be 'TypeError: Result of expression 'window.showModalDialog' [undefined] is not an object.' and is.
 PASS: window.location.toString.call(targetWindow.location) should be 'undefined' and is.
 
index d768858..d0da1ef 100644 (file)
@@ -56,7 +56,7 @@ window.onload = function()
     shouldBe("window.resizeTo.call(targetWindow, 0, 0);", "undefined");
 
     // Throws a TypeError and logs to the error console
-    shouldBe("window.showModalDialog.call(targetWindow);", "'Result of expression 'window.showModalDialog' [undefined] is not an object.'");
+    shouldBe("window.showModalDialog.call(targetWindow);", '"TypeError: Result of expression \'window.showModalDialog\' [undefined] is not an object."');
 
     // - Tests for the Location object -
     // undefined value indicates failure
index 087a892..6a563c0 100644 (file)
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: line 14: Result of expression 'document.styleSheets[1].disabled =' [undefined] is not an object.
+CONSOLE MESSAGE: line 14: Result of expression 'document.styleSheets[1]' [undefined] is not an object.
 layer at (0,0) size 800x600
   RenderView at (0,0) size 800x600
 layer at (0,0) size 800x76