summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorsgjesse@chromium.org <sgjesse@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-07 14:04:36 +0000
committersgjesse@chromium.org <sgjesse@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-07 14:04:36 +0000
commitce1eb3bd99a3af516f3efa93229146e3569e5570 (patch)
treec143b9ffa20159570b86a83f8680a70993fcc40e /webkit
parent63d319ebcaddfe4a84b5bb1898b88ab3999fa173 (diff)
downloadchromium_src-ce1eb3bd99a3af516f3efa93229146e3569e5570.zip
chromium_src-ce1eb3bd99a3af516f3efa93229146e3569e5570.tar.gz
chromium_src-ce1eb3bd99a3af516f3efa93229146e3569e5570.tar.bz2
Update V8 to version 1.3.15.
This change contails the layout test expectation changes from http://codereview.chromium.org/248001 and http://codereview.chromium.org/251071 as the V8 update requires these. This change also contains a change to compile against the changes IdleNotification API in the new V8 version. BUG=none TEST=none TBR=ager@chromium.org Review URL: http://codereview.chromium.org/263008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28246 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/dom/xmlhttprequest-constructor-in-detached-document-expected.txt10
-rw-r--r--webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/assign-expected.txt6
-rw-r--r--webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/exception-codegen-crash-expected.txt2
-rw-r--r--webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/function-toString-parentheses-expected.txt174
-rw-r--r--webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/postfix-syntax-expected.txt4
-rw-r--r--webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/prefix-syntax-expected.txt7
-rw-r--r--webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/toString-prefix-postfix-preserve-parens-expected.txt61
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/dom/xmlhttprequest-constructor-in-detached-document-expected.txt10
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/assign-expected.txt6
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/exception-codegen-crash-expected.txt2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/function-toString-parentheses-expected.txt174
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/postfix-syntax-expected.txt4
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/prefix-syntax-expected.txt7
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/toString-prefix-postfix-preserve-parens-expected.txt61
14 files changed, 322 insertions, 206 deletions
diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/dom/xmlhttprequest-constructor-in-detached-document-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/dom/xmlhttprequest-constructor-in-detached-document-expected.txt
index ba47d1f4..a2f718d 100644
--- a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/dom/xmlhttprequest-constructor-in-detached-document-expected.txt
+++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/dom/xmlhttprequest-constructor-in-detached-document-expected.txt
@@ -1,5 +1,5 @@
-CONSOLE MESSAGE: line 222: Uncaught TypeError: undefined is not a function
-Text for bug 25290: Crash when constructing XMLHttpRequest in a detached document.
-
-PASS
-
+CONSOLE MESSAGE: line 401: Uncaught TypeError: undefined is not a function
+Text for bug 25290: Crash when constructing XMLHttpRequest in a detached document.
+
+PASS
+
diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/assign-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/assign-expected.txt
index 420352c..89f4a54 100644
--- a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/assign-expected.txt
+++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/assign-expected.txt
@@ -13,9 +13,9 @@ PASS y, x = 7; x is 7
PASS ((x)) = 8; x is 8
PASS ((window.x)) = 9; x is 9
PASS ((window["x"])) = 10; x is 10
-PASS (y, x) = "FAIL"; threw exception SyntaxError: Invalid left-hand side in assignment.
-PASS (true ? x : y) = "FAIL"; threw exception SyntaxError: Invalid left-hand side in assignment.
-PASS x++ = "FAIL"; threw exception SyntaxError: Invalid left-hand side in assignment.
+PASS (y, x) = "FAIL"; threw exception ReferenceError: Invalid left-hand side in assignment.
+PASS (true ? x : y) = "FAIL"; threw exception ReferenceError: Invalid left-hand side in assignment.
+PASS x++ = "FAIL"; threw exception ReferenceError: Invalid left-hand side in assignment.
PASS successfullyParsed is true
TEST COMPLETE
diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/exception-codegen-crash-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/exception-codegen-crash-expected.txt
index 90843b9..8daca06 100644
--- a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/exception-codegen-crash-expected.txt
+++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/exception-codegen-crash-expected.txt
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: line 1: Uncaught SyntaxError: Invalid left-hand side expression in postfix operation
+CONSOLE MESSAGE: line 1: Uncaught ReferenceError: Invalid left-hand side expression in postfix operation
This page tests some conditions that used to cause crashes during codegen.
If you don't crash, you pass.
diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/function-toString-parentheses-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/function-toString-parentheses-expected.txt
index 4fe27e2..b2ff34c 100644
--- a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/function-toString-parentheses-expected.txt
+++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/function-toString-parentheses-expected.txt
@@ -211,145 +211,145 @@ PASS compileAndSerialize('a || b || c') is 'a || b || c'
PASS compileAndSerialize('(a || b) || c') is '(a || b) || c'
PASS compileAndSerialize('a || (b || c)') is 'a || (b || c)'
PASS compileAndSerialize('a = b = c') is 'a = b = c'
-FAIL compileAndSerialize('(a = b) = c') should be (a = b) = c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) = c') is '(a = b) = c'
PASS compileAndSerialize('a = (b = c)') is 'a = (b = c)'
PASS compileAndSerialize('a = b + c') is 'a = b + c'
PASS compileAndSerialize('(a = b) + c') is '(a = b) + c'
PASS compileAndSerialize('a = (b + c)') is 'a = (b + c)'
-PASS compileAndSerialize('a + b = c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) = c') should be (a + b) = c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b = c') should throw an exception. Was a + b = c.
+PASS compileAndSerialize('(a + b) = c') is '(a + b) = c'
PASS compileAndSerialize('a + (b = c)') is 'a + (b = c)'
PASS compileAndSerialize('a *= b *= c') is 'a *= b *= c'
-FAIL compileAndSerialize('(a *= b) *= c') should be (a *= b) *= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a *= b) *= c') is '(a *= b) *= c'
PASS compileAndSerialize('a *= (b *= c)') is 'a *= (b *= c)'
PASS compileAndSerialize('a = b *= c') is 'a = b *= c'
-FAIL compileAndSerialize('(a = b) *= c') should be (a = b) *= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) *= c') is '(a = b) *= c'
PASS compileAndSerialize('a = (b *= c)') is 'a = (b *= c)'
PASS compileAndSerialize('a *= b + c') is 'a *= b + c'
PASS compileAndSerialize('(a *= b) + c') is '(a *= b) + c'
PASS compileAndSerialize('a *= (b + c)') is 'a *= (b + c)'
-PASS compileAndSerialize('a + b *= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) *= c') should be (a + b) *= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b *= c') should throw an exception. Was a + b *= c.
+PASS compileAndSerialize('(a + b) *= c') is '(a + b) *= c'
PASS compileAndSerialize('a + (b *= c)') is 'a + (b *= c)'
PASS compileAndSerialize('a /= b /= c') is 'a /= b /= c'
-FAIL compileAndSerialize('(a /= b) /= c') should be (a /= b) /= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a /= b) /= c') is '(a /= b) /= c'
PASS compileAndSerialize('a /= (b /= c)') is 'a /= (b /= c)'
PASS compileAndSerialize('a = b /= c') is 'a = b /= c'
-FAIL compileAndSerialize('(a = b) /= c') should be (a = b) /= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) /= c') is '(a = b) /= c'
PASS compileAndSerialize('a = (b /= c)') is 'a = (b /= c)'
PASS compileAndSerialize('a /= b + c') is 'a /= b + c'
PASS compileAndSerialize('(a /= b) + c') is '(a /= b) + c'
PASS compileAndSerialize('a /= (b + c)') is 'a /= (b + c)'
-PASS compileAndSerialize('a + b /= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) /= c') should be (a + b) /= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b /= c') should throw an exception. Was a + b /= c.
+PASS compileAndSerialize('(a + b) /= c') is '(a + b) /= c'
PASS compileAndSerialize('a + (b /= c)') is 'a + (b /= c)'
PASS compileAndSerialize('a %= b %= c') is 'a %= b %= c'
-FAIL compileAndSerialize('(a %= b) %= c') should be (a %= b) %= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a %= b) %= c') is '(a %= b) %= c'
PASS compileAndSerialize('a %= (b %= c)') is 'a %= (b %= c)'
PASS compileAndSerialize('a = b %= c') is 'a = b %= c'
-FAIL compileAndSerialize('(a = b) %= c') should be (a = b) %= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) %= c') is '(a = b) %= c'
PASS compileAndSerialize('a = (b %= c)') is 'a = (b %= c)'
PASS compileAndSerialize('a %= b + c') is 'a %= b + c'
PASS compileAndSerialize('(a %= b) + c') is '(a %= b) + c'
PASS compileAndSerialize('a %= (b + c)') is 'a %= (b + c)'
-PASS compileAndSerialize('a + b %= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) %= c') should be (a + b) %= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b %= c') should throw an exception. Was a + b %= c.
+PASS compileAndSerialize('(a + b) %= c') is '(a + b) %= c'
PASS compileAndSerialize('a + (b %= c)') is 'a + (b %= c)'
PASS compileAndSerialize('a += b += c') is 'a += b += c'
-FAIL compileAndSerialize('(a += b) += c') should be (a += b) += c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a += b) += c') is '(a += b) += c'
PASS compileAndSerialize('a += (b += c)') is 'a += (b += c)'
PASS compileAndSerialize('a = b += c') is 'a = b += c'
-FAIL compileAndSerialize('(a = b) += c') should be (a = b) += c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) += c') is '(a = b) += c'
PASS compileAndSerialize('a = (b += c)') is 'a = (b += c)'
PASS compileAndSerialize('a += b + c') is 'a += b + c'
PASS compileAndSerialize('(a += b) + c') is '(a += b) + c'
PASS compileAndSerialize('a += (b + c)') is 'a += (b + c)'
-PASS compileAndSerialize('a + b += c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) += c') should be (a + b) += c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b += c') should throw an exception. Was a + b += c.
+PASS compileAndSerialize('(a + b) += c') is '(a + b) += c'
PASS compileAndSerialize('a + (b += c)') is 'a + (b += c)'
PASS compileAndSerialize('a -= b -= c') is 'a -= b -= c'
-FAIL compileAndSerialize('(a -= b) -= c') should be (a -= b) -= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a -= b) -= c') is '(a -= b) -= c'
PASS compileAndSerialize('a -= (b -= c)') is 'a -= (b -= c)'
PASS compileAndSerialize('a = b -= c') is 'a = b -= c'
-FAIL compileAndSerialize('(a = b) -= c') should be (a = b) -= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) -= c') is '(a = b) -= c'
PASS compileAndSerialize('a = (b -= c)') is 'a = (b -= c)'
PASS compileAndSerialize('a -= b + c') is 'a -= b + c'
PASS compileAndSerialize('(a -= b) + c') is '(a -= b) + c'
PASS compileAndSerialize('a -= (b + c)') is 'a -= (b + c)'
-PASS compileAndSerialize('a + b -= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) -= c') should be (a + b) -= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b -= c') should throw an exception. Was a + b -= c.
+PASS compileAndSerialize('(a + b) -= c') is '(a + b) -= c'
PASS compileAndSerialize('a + (b -= c)') is 'a + (b -= c)'
PASS compileAndSerialize('a <<= b <<= c') is 'a <<= b <<= c'
-FAIL compileAndSerialize('(a <<= b) <<= c') should be (a <<= b) <<= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a <<= b) <<= c') is '(a <<= b) <<= c'
PASS compileAndSerialize('a <<= (b <<= c)') is 'a <<= (b <<= c)'
PASS compileAndSerialize('a = b <<= c') is 'a = b <<= c'
-FAIL compileAndSerialize('(a = b) <<= c') should be (a = b) <<= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) <<= c') is '(a = b) <<= c'
PASS compileAndSerialize('a = (b <<= c)') is 'a = (b <<= c)'
PASS compileAndSerialize('a <<= b + c') is 'a <<= b + c'
PASS compileAndSerialize('(a <<= b) + c') is '(a <<= b) + c'
PASS compileAndSerialize('a <<= (b + c)') is 'a <<= (b + c)'
-PASS compileAndSerialize('a + b <<= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) <<= c') should be (a + b) <<= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b <<= c') should throw an exception. Was a + b <<= c.
+PASS compileAndSerialize('(a + b) <<= c') is '(a + b) <<= c'
PASS compileAndSerialize('a + (b <<= c)') is 'a + (b <<= c)'
PASS compileAndSerialize('a >>= b >>= c') is 'a >>= b >>= c'
-FAIL compileAndSerialize('(a >>= b) >>= c') should be (a >>= b) >>= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a >>= b) >>= c') is '(a >>= b) >>= c'
PASS compileAndSerialize('a >>= (b >>= c)') is 'a >>= (b >>= c)'
PASS compileAndSerialize('a = b >>= c') is 'a = b >>= c'
-FAIL compileAndSerialize('(a = b) >>= c') should be (a = b) >>= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) >>= c') is '(a = b) >>= c'
PASS compileAndSerialize('a = (b >>= c)') is 'a = (b >>= c)'
PASS compileAndSerialize('a >>= b + c') is 'a >>= b + c'
PASS compileAndSerialize('(a >>= b) + c') is '(a >>= b) + c'
PASS compileAndSerialize('a >>= (b + c)') is 'a >>= (b + c)'
-PASS compileAndSerialize('a + b >>= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) >>= c') should be (a + b) >>= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b >>= c') should throw an exception. Was a + b >>= c.
+PASS compileAndSerialize('(a + b) >>= c') is '(a + b) >>= c'
PASS compileAndSerialize('a + (b >>= c)') is 'a + (b >>= c)'
PASS compileAndSerialize('a >>>= b >>>= c') is 'a >>>= b >>>= c'
-FAIL compileAndSerialize('(a >>>= b) >>>= c') should be (a >>>= b) >>>= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a >>>= b) >>>= c') is '(a >>>= b) >>>= c'
PASS compileAndSerialize('a >>>= (b >>>= c)') is 'a >>>= (b >>>= c)'
PASS compileAndSerialize('a = b >>>= c') is 'a = b >>>= c'
-FAIL compileAndSerialize('(a = b) >>>= c') should be (a = b) >>>= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) >>>= c') is '(a = b) >>>= c'
PASS compileAndSerialize('a = (b >>>= c)') is 'a = (b >>>= c)'
PASS compileAndSerialize('a >>>= b + c') is 'a >>>= b + c'
PASS compileAndSerialize('(a >>>= b) + c') is '(a >>>= b) + c'
PASS compileAndSerialize('a >>>= (b + c)') is 'a >>>= (b + c)'
-PASS compileAndSerialize('a + b >>>= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) >>>= c') should be (a + b) >>>= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b >>>= c') should throw an exception. Was a + b >>>= c.
+PASS compileAndSerialize('(a + b) >>>= c') is '(a + b) >>>= c'
PASS compileAndSerialize('a + (b >>>= c)') is 'a + (b >>>= c)'
PASS compileAndSerialize('a &= b &= c') is 'a &= b &= c'
-FAIL compileAndSerialize('(a &= b) &= c') should be (a &= b) &= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a &= b) &= c') is '(a &= b) &= c'
PASS compileAndSerialize('a &= (b &= c)') is 'a &= (b &= c)'
PASS compileAndSerialize('a = b &= c') is 'a = b &= c'
-FAIL compileAndSerialize('(a = b) &= c') should be (a = b) &= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) &= c') is '(a = b) &= c'
PASS compileAndSerialize('a = (b &= c)') is 'a = (b &= c)'
PASS compileAndSerialize('a &= b + c') is 'a &= b + c'
PASS compileAndSerialize('(a &= b) + c') is '(a &= b) + c'
PASS compileAndSerialize('a &= (b + c)') is 'a &= (b + c)'
-PASS compileAndSerialize('a + b &= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) &= c') should be (a + b) &= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b &= c') should throw an exception. Was a + b &= c.
+PASS compileAndSerialize('(a + b) &= c') is '(a + b) &= c'
PASS compileAndSerialize('a + (b &= c)') is 'a + (b &= c)'
PASS compileAndSerialize('a ^= b ^= c') is 'a ^= b ^= c'
-FAIL compileAndSerialize('(a ^= b) ^= c') should be (a ^= b) ^= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a ^= b) ^= c') is '(a ^= b) ^= c'
PASS compileAndSerialize('a ^= (b ^= c)') is 'a ^= (b ^= c)'
PASS compileAndSerialize('a = b ^= c') is 'a = b ^= c'
-FAIL compileAndSerialize('(a = b) ^= c') should be (a = b) ^= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) ^= c') is '(a = b) ^= c'
PASS compileAndSerialize('a = (b ^= c)') is 'a = (b ^= c)'
PASS compileAndSerialize('a ^= b + c') is 'a ^= b + c'
PASS compileAndSerialize('(a ^= b) + c') is '(a ^= b) + c'
PASS compileAndSerialize('a ^= (b + c)') is 'a ^= (b + c)'
-PASS compileAndSerialize('a + b ^= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) ^= c') should be (a + b) ^= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b ^= c') should throw an exception. Was a + b ^= c.
+PASS compileAndSerialize('(a + b) ^= c') is '(a + b) ^= c'
PASS compileAndSerialize('a + (b ^= c)') is 'a + (b ^= c)'
PASS compileAndSerialize('a |= b |= c') is 'a |= b |= c'
-FAIL compileAndSerialize('(a |= b) |= c') should be (a |= b) |= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a |= b) |= c') is '(a |= b) |= c'
PASS compileAndSerialize('a |= (b |= c)') is 'a |= (b |= c)'
PASS compileAndSerialize('a = b |= c') is 'a = b |= c'
-FAIL compileAndSerialize('(a = b) |= c') should be (a = b) |= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) |= c') is '(a = b) |= c'
PASS compileAndSerialize('a = (b |= c)') is 'a = (b |= c)'
PASS compileAndSerialize('a |= b + c') is 'a |= b + c'
PASS compileAndSerialize('(a |= b) + c') is '(a |= b) + c'
PASS compileAndSerialize('a |= (b + c)') is 'a |= (b + c)'
-PASS compileAndSerialize('a + b |= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) |= c') should be (a + b) |= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b |= c') should throw an exception. Was a + b |= c.
+PASS compileAndSerialize('(a + b) |= c') is '(a + b) |= c'
PASS compileAndSerialize('a + (b |= c)') is 'a + (b |= c)'
PASS compileAndSerialize('delete a + b') is 'delete a + b'
PASS compileAndSerialize('(delete a) + b') is '(delete a) + b'
@@ -368,12 +368,12 @@ PASS compileAndSerialize('!typeof a') is '!typeof a'
PASS compileAndSerialize('!(typeof a)') is '!(typeof a)'
PASS compileAndSerialize('++a + b') is '++a + b'
PASS compileAndSerialize('(++a) + b') is '(++a) + b'
-FAIL compileAndSerialize('++(a + b)') should be ++(a + b). Threw exception SyntaxError: Invalid left-hand side expression in prefix operation
+PASS compileAndSerialize('++(a + b)') is '++(a + b)'
PASS compileAndSerialize('!++a') is '!++a'
PASS compileAndSerialize('!(++a)') is '!(++a)'
PASS compileAndSerialize('--a + b') is '--a + b'
PASS compileAndSerialize('(--a) + b') is '(--a) + b'
-FAIL compileAndSerialize('--(a + b)') should be --(a + b). Threw exception SyntaxError: Invalid left-hand side expression in prefix operation
+PASS compileAndSerialize('--(a + b)') is '--(a + b)'
PASS compileAndSerialize('!--a') is '!--a'
PASS compileAndSerialize('!(--a)') is '!(--a)'
PASS compileAndSerialize('+ a + b') is '+ a + b'
@@ -398,10 +398,10 @@ PASS compileAndSerialize('!!a') is '!!a'
PASS compileAndSerialize('!(!a)') is '!(!a)'
PASS compileAndSerialize('!a++') is '!a++'
PASS compileAndSerialize('!(a++)') is '!(a++)'
-FAIL compileAndSerialize('(!a)++') should be (!a)++. Threw exception SyntaxError: Invalid left-hand side expression in postfix operation
+PASS compileAndSerialize('(!a)++') is '(!a)++'
PASS compileAndSerialize('!a--') is '!a--'
PASS compileAndSerialize('!(a--)') is '!(a--)'
-FAIL compileAndSerialize('(!a)--') should be (!a)--. Threw exception SyntaxError: Invalid left-hand side expression in postfix operation
+PASS compileAndSerialize('(!a)--') is '(!a)--'
PASS compileAndSerialize('(-1)[a]') is '(-1)[a]'
PASS compileAndSerialize('(-1)[a] = b') is '(-1)[a] = b'
PASS compileAndSerialize('(-1)[a] += b') is '(-1)[a] += b'
@@ -441,42 +441,42 @@ PASS compileAndSerialize('(1).a += b') is '(1).a += b'
PASS compileAndSerialize('(1).a++') is '(1).a++'
PASS compileAndSerialize('++(1).a') is '++(1).a'
PASS compileAndSerialize('(1).a()') is '(1).a()'
-FAIL compileAndSerialize('(-1) = a') should be (-1) = a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) = a') should be (- 0) = a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 = a') should be 1 = a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) *= a') should be (-1) *= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) *= a') should be (- 0) *= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 *= a') should be 1 *= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) /= a') should be (-1) /= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) /= a') should be (- 0) /= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 /= a') should be 1 /= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) %= a') should be (-1) %= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) %= a') should be (- 0) %= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 %= a') should be 1 %= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) += a') should be (-1) += a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) += a') should be (- 0) += a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 += a') should be 1 += a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) -= a') should be (-1) -= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) -= a') should be (- 0) -= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 -= a') should be 1 -= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) <<= a') should be (-1) <<= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) <<= a') should be (- 0) <<= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 <<= a') should be 1 <<= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) >>= a') should be (-1) >>= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) >>= a') should be (- 0) >>= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 >>= a') should be 1 >>= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) >>>= a') should be (-1) >>>= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) >>>= a') should be (- 0) >>>= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 >>>= a') should be 1 >>>= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) &= a') should be (-1) &= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) &= a') should be (- 0) &= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 &= a') should be 1 &= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) ^= a') should be (-1) ^= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) ^= a') should be (- 0) ^= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 ^= a') should be 1 ^= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) |= a') should be (-1) |= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) |= a') should be (- 0) |= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 |= a') should be 1 |= a. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(-1) = a') is '(-1) = a'
+PASS compileAndSerialize('(- 0) = a') is '(- 0) = a'
+PASS compileAndSerialize('1 = a') is '1 = a'
+PASS compileAndSerialize('(-1) *= a') is '(-1) *= a'
+PASS compileAndSerialize('(- 0) *= a') is '(- 0) *= a'
+PASS compileAndSerialize('1 *= a') is '1 *= a'
+PASS compileAndSerialize('(-1) /= a') is '(-1) /= a'
+PASS compileAndSerialize('(- 0) /= a') is '(- 0) /= a'
+PASS compileAndSerialize('1 /= a') is '1 /= a'
+PASS compileAndSerialize('(-1) %= a') is '(-1) %= a'
+PASS compileAndSerialize('(- 0) %= a') is '(- 0) %= a'
+PASS compileAndSerialize('1 %= a') is '1 %= a'
+PASS compileAndSerialize('(-1) += a') is '(-1) += a'
+PASS compileAndSerialize('(- 0) += a') is '(- 0) += a'
+PASS compileAndSerialize('1 += a') is '1 += a'
+PASS compileAndSerialize('(-1) -= a') is '(-1) -= a'
+PASS compileAndSerialize('(- 0) -= a') is '(- 0) -= a'
+PASS compileAndSerialize('1 -= a') is '1 -= a'
+PASS compileAndSerialize('(-1) <<= a') is '(-1) <<= a'
+PASS compileAndSerialize('(- 0) <<= a') is '(- 0) <<= a'
+PASS compileAndSerialize('1 <<= a') is '1 <<= a'
+PASS compileAndSerialize('(-1) >>= a') is '(-1) >>= a'
+PASS compileAndSerialize('(- 0) >>= a') is '(- 0) >>= a'
+PASS compileAndSerialize('1 >>= a') is '1 >>= a'
+PASS compileAndSerialize('(-1) >>>= a') is '(-1) >>>= a'
+PASS compileAndSerialize('(- 0) >>>= a') is '(- 0) >>>= a'
+PASS compileAndSerialize('1 >>>= a') is '1 >>>= a'
+PASS compileAndSerialize('(-1) &= a') is '(-1) &= a'
+PASS compileAndSerialize('(- 0) &= a') is '(- 0) &= a'
+PASS compileAndSerialize('1 &= a') is '1 &= a'
+PASS compileAndSerialize('(-1) ^= a') is '(-1) ^= a'
+PASS compileAndSerialize('(- 0) ^= a') is '(- 0) ^= a'
+PASS compileAndSerialize('1 ^= a') is '1 ^= a'
+PASS compileAndSerialize('(-1) |= a') is '(-1) |= a'
+PASS compileAndSerialize('(- 0) |= a') is '(- 0) |= a'
+PASS compileAndSerialize('1 |= a') is '1 |= a'
PASS compileAndSerializeLeftmostTest('({ }).x') is '({ }).x'
PASS compileAndSerializeLeftmostTest('x = { }') is 'x = { }'
PASS compileAndSerializeLeftmostTest('(function () { })()') is '(function () { })()'
diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/postfix-syntax-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/postfix-syntax-expected.txt
index c2ab500..9c04e84 100644
--- a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/postfix-syntax-expected.txt
+++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/postfix-syntax-expected.txt
@@ -13,8 +13,8 @@ PASS (y, x++) is 6
PASS ((x))++ is 7
PASS ((window.x))++ is 8
PASS ((window["x"]))++ is 9
-PASS (y, x)++ threw exception SyntaxError: Invalid left-hand side expression in postfix operation.
-PASS (true ? x : y)++ threw exception SyntaxError: Invalid left-hand side expression in postfix operation.
+PASS (y, x)++ threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS (true ? x : y)++ threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
PASS x++++ threw exception SyntaxError: Unexpected token ++.
PASS x is 0
PASS y is 0
diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/prefix-syntax-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/prefix-syntax-expected.txt
index 363e581..50d1947 100644
--- a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/prefix-syntax-expected.txt
+++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/prefix-syntax-expected.txt
@@ -13,9 +13,10 @@ PASS (y, ++x) is 7
PASS ++((x)) is 8
PASS ++((window.x)) is 9
PASS ++((window["x"])) is 10
-PASS ++(y, x) threw exception SyntaxError: Invalid left-hand side expression in prefix operation.
-PASS ++(true ? x : y) threw exception SyntaxError: Invalid left-hand side expression in prefix operation.
-PASS ++++x threw exception SyntaxError: Invalid left-hand side expression in prefix operation.
+PASS ++(y, x) threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS ++(true ? x : y) threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS ++++x threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
PASS successfullyParsed is true
TEST COMPLETE
+
diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/toString-prefix-postfix-preserve-parens-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/toString-prefix-postfix-preserve-parens-expected.txt
index 5c2c64e..4f09ecaa 100644
--- a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/toString-prefix-postfix-preserve-parens-expected.txt
+++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/toString-prefix-postfix-preserve-parens-expected.txt
@@ -1,4 +1,61 @@
-CONSOLE MESSAGE: line 6: Uncaught SyntaxError: Invalid left-hand side expression in postfix operation
-FAIL successfullyParsed should be true. Threw exception ReferenceError: successfullyParsed is not defined
+This test checks that toString() round-trip on a function that has prefix, postfix and typeof operators applied to group expression will not remove the grouping. Also checks that evaluation of such a expression produces run-time exception
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS unevalf(eval(unevalf(prefix_should_preserve_parens))) is unevalf(prefix_should_preserve_parens)
+PASS /.*\(+x\)*, y\)/.test(unevalf(prefix_should_preserve_parens)) is true
+PASS prefix_should_preserve_parens(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS eval(unevalf(prefix_should_preserve_parens))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS unevalf(eval(unevalf(postfix_should_preserve_parens))) is unevalf(postfix_should_preserve_parens)
+PASS /.*\(+x\)*, y\)/.test(unevalf(postfix_should_preserve_parens)) is true
+PASS postfix_should_preserve_parens(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS eval(unevalf(postfix_should_preserve_parens))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS unevalf(eval(unevalf(both_should_preserve_parens))) is unevalf(both_should_preserve_parens)
+PASS /.*\(+x\)*, y\)/.test(unevalf(both_should_preserve_parens)) is true
+PASS both_should_preserve_parens(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS eval(unevalf(both_should_preserve_parens))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS unevalf(eval(unevalf(prefix_should_preserve_parens_multi))) is unevalf(prefix_should_preserve_parens_multi)
+PASS /.*\(+x\)*, y\)/.test(unevalf(prefix_should_preserve_parens_multi)) is true
+PASS prefix_should_preserve_parens_multi(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS eval(unevalf(prefix_should_preserve_parens_multi))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS unevalf(eval(unevalf(postfix_should_preserve_parens_multi))) is unevalf(postfix_should_preserve_parens_multi)
+PASS /.*\(+x\)*, y\)/.test(unevalf(postfix_should_preserve_parens_multi)) is true
+PASS postfix_should_preserve_parens_multi(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS eval(unevalf(postfix_should_preserve_parens_multi))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS unevalf(eval(unevalf(prefix_should_preserve_parens_multi1))) is unevalf(prefix_should_preserve_parens_multi1)
+PASS /.*\(+x\)*, y\)/.test(unevalf(prefix_should_preserve_parens_multi1)) is true
+PASS prefix_should_preserve_parens_multi1(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS eval(unevalf(prefix_should_preserve_parens_multi1))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS unevalf(eval(unevalf(postfix_should_preserve_parens_multi1))) is unevalf(postfix_should_preserve_parens_multi1)
+PASS /.*\(+x\)*, y\)/.test(unevalf(postfix_should_preserve_parens_multi1)) is true
+PASS postfix_should_preserve_parens_multi1(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS eval(unevalf(postfix_should_preserve_parens_multi1))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS unevalf(eval(unevalf(prefix_should_preserve_parens_multi2))) is unevalf(prefix_should_preserve_parens_multi2)
+PASS /.*\(+x\)*, y\)/.test(unevalf(prefix_should_preserve_parens_multi2)) is true
+PASS prefix_should_preserve_parens_multi2(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS eval(unevalf(prefix_should_preserve_parens_multi2))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS unevalf(eval(unevalf(postfix_should_preserve_parens_multi2))) is unevalf(postfix_should_preserve_parens_multi2)
+PASS /.*\(+x\)*, y\)/.test(unevalf(postfix_should_preserve_parens_multi2)) is true
+PASS postfix_should_preserve_parens_multi2(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS eval(unevalf(postfix_should_preserve_parens_multi2))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS unevalf(eval(unevalf(typeof_should_preserve_parens))) is unevalf(typeof_should_preserve_parens)
+PASS /.*\(+x\)*, y\)/.test(unevalf(typeof_should_preserve_parens)) is true
+PASS typeof_should_preserve_parens('a', 1); is 'number'
+PASS eval(unevalf(typeof_should_preserve_parens))('a', 1); is 'number'
+PASS unevalf(eval(unevalf(typeof_should_preserve_parens1))) is unevalf(typeof_should_preserve_parens1)
+PASS /.*\(+x\)*, y\)/.test(unevalf(typeof_should_preserve_parens1)) is true
+PASS typeof_should_preserve_parens1('a', 1); is 'number'
+PASS eval(unevalf(typeof_should_preserve_parens1))('a', 1); is 'number'
+PASS unevalf(eval(unevalf(typeof_should_preserve_parens2))) is unevalf(typeof_should_preserve_parens2)
+PASS /.*\(+x\)*, y\)/.test(unevalf(typeof_should_preserve_parens2)) is true
+PASS typeof_should_preserve_parens2('a', 1); is 'number'
+PASS eval(unevalf(typeof_should_preserve_parens2))('a', 1); is 'number'
+PASS unevalf(eval(unevalf(typeof_should_preserve_parens_multi))) is unevalf(typeof_should_preserve_parens_multi)
+PASS /.*\(+x\)*, y\)/.test(unevalf(typeof_should_preserve_parens_multi)) is true
+PASS typeof_should_preserve_parens_multi('a', 1); is 'number'
+PASS eval(unevalf(typeof_should_preserve_parens_multi))('a', 1); is 'number'
+PASS successfullyParsed is true
TEST COMPLETE
+
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/dom/xmlhttprequest-constructor-in-detached-document-expected.txt b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/dom/xmlhttprequest-constructor-in-detached-document-expected.txt
index ba47d1f4..a2f718d 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/dom/xmlhttprequest-constructor-in-detached-document-expected.txt
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/dom/xmlhttprequest-constructor-in-detached-document-expected.txt
@@ -1,5 +1,5 @@
-CONSOLE MESSAGE: line 222: Uncaught TypeError: undefined is not a function
-Text for bug 25290: Crash when constructing XMLHttpRequest in a detached document.
-
-PASS
-
+CONSOLE MESSAGE: line 401: Uncaught TypeError: undefined is not a function
+Text for bug 25290: Crash when constructing XMLHttpRequest in a detached document.
+
+PASS
+
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/assign-expected.txt b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/assign-expected.txt
index 420352c..89f4a54 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/assign-expected.txt
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/assign-expected.txt
@@ -13,9 +13,9 @@ PASS y, x = 7; x is 7
PASS ((x)) = 8; x is 8
PASS ((window.x)) = 9; x is 9
PASS ((window["x"])) = 10; x is 10
-PASS (y, x) = "FAIL"; threw exception SyntaxError: Invalid left-hand side in assignment.
-PASS (true ? x : y) = "FAIL"; threw exception SyntaxError: Invalid left-hand side in assignment.
-PASS x++ = "FAIL"; threw exception SyntaxError: Invalid left-hand side in assignment.
+PASS (y, x) = "FAIL"; threw exception ReferenceError: Invalid left-hand side in assignment.
+PASS (true ? x : y) = "FAIL"; threw exception ReferenceError: Invalid left-hand side in assignment.
+PASS x++ = "FAIL"; threw exception ReferenceError: Invalid left-hand side in assignment.
PASS successfullyParsed is true
TEST COMPLETE
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/exception-codegen-crash-expected.txt b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/exception-codegen-crash-expected.txt
index 90843b9..8daca06 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/exception-codegen-crash-expected.txt
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/exception-codegen-crash-expected.txt
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: line 1: Uncaught SyntaxError: Invalid left-hand side expression in postfix operation
+CONSOLE MESSAGE: line 1: Uncaught ReferenceError: Invalid left-hand side expression in postfix operation
This page tests some conditions that used to cause crashes during codegen.
If you don't crash, you pass.
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/function-toString-parentheses-expected.txt b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/function-toString-parentheses-expected.txt
index 4fe27e2..b2ff34c 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/function-toString-parentheses-expected.txt
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/function-toString-parentheses-expected.txt
@@ -211,145 +211,145 @@ PASS compileAndSerialize('a || b || c') is 'a || b || c'
PASS compileAndSerialize('(a || b) || c') is '(a || b) || c'
PASS compileAndSerialize('a || (b || c)') is 'a || (b || c)'
PASS compileAndSerialize('a = b = c') is 'a = b = c'
-FAIL compileAndSerialize('(a = b) = c') should be (a = b) = c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) = c') is '(a = b) = c'
PASS compileAndSerialize('a = (b = c)') is 'a = (b = c)'
PASS compileAndSerialize('a = b + c') is 'a = b + c'
PASS compileAndSerialize('(a = b) + c') is '(a = b) + c'
PASS compileAndSerialize('a = (b + c)') is 'a = (b + c)'
-PASS compileAndSerialize('a + b = c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) = c') should be (a + b) = c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b = c') should throw an exception. Was a + b = c.
+PASS compileAndSerialize('(a + b) = c') is '(a + b) = c'
PASS compileAndSerialize('a + (b = c)') is 'a + (b = c)'
PASS compileAndSerialize('a *= b *= c') is 'a *= b *= c'
-FAIL compileAndSerialize('(a *= b) *= c') should be (a *= b) *= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a *= b) *= c') is '(a *= b) *= c'
PASS compileAndSerialize('a *= (b *= c)') is 'a *= (b *= c)'
PASS compileAndSerialize('a = b *= c') is 'a = b *= c'
-FAIL compileAndSerialize('(a = b) *= c') should be (a = b) *= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) *= c') is '(a = b) *= c'
PASS compileAndSerialize('a = (b *= c)') is 'a = (b *= c)'
PASS compileAndSerialize('a *= b + c') is 'a *= b + c'
PASS compileAndSerialize('(a *= b) + c') is '(a *= b) + c'
PASS compileAndSerialize('a *= (b + c)') is 'a *= (b + c)'
-PASS compileAndSerialize('a + b *= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) *= c') should be (a + b) *= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b *= c') should throw an exception. Was a + b *= c.
+PASS compileAndSerialize('(a + b) *= c') is '(a + b) *= c'
PASS compileAndSerialize('a + (b *= c)') is 'a + (b *= c)'
PASS compileAndSerialize('a /= b /= c') is 'a /= b /= c'
-FAIL compileAndSerialize('(a /= b) /= c') should be (a /= b) /= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a /= b) /= c') is '(a /= b) /= c'
PASS compileAndSerialize('a /= (b /= c)') is 'a /= (b /= c)'
PASS compileAndSerialize('a = b /= c') is 'a = b /= c'
-FAIL compileAndSerialize('(a = b) /= c') should be (a = b) /= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) /= c') is '(a = b) /= c'
PASS compileAndSerialize('a = (b /= c)') is 'a = (b /= c)'
PASS compileAndSerialize('a /= b + c') is 'a /= b + c'
PASS compileAndSerialize('(a /= b) + c') is '(a /= b) + c'
PASS compileAndSerialize('a /= (b + c)') is 'a /= (b + c)'
-PASS compileAndSerialize('a + b /= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) /= c') should be (a + b) /= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b /= c') should throw an exception. Was a + b /= c.
+PASS compileAndSerialize('(a + b) /= c') is '(a + b) /= c'
PASS compileAndSerialize('a + (b /= c)') is 'a + (b /= c)'
PASS compileAndSerialize('a %= b %= c') is 'a %= b %= c'
-FAIL compileAndSerialize('(a %= b) %= c') should be (a %= b) %= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a %= b) %= c') is '(a %= b) %= c'
PASS compileAndSerialize('a %= (b %= c)') is 'a %= (b %= c)'
PASS compileAndSerialize('a = b %= c') is 'a = b %= c'
-FAIL compileAndSerialize('(a = b) %= c') should be (a = b) %= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) %= c') is '(a = b) %= c'
PASS compileAndSerialize('a = (b %= c)') is 'a = (b %= c)'
PASS compileAndSerialize('a %= b + c') is 'a %= b + c'
PASS compileAndSerialize('(a %= b) + c') is '(a %= b) + c'
PASS compileAndSerialize('a %= (b + c)') is 'a %= (b + c)'
-PASS compileAndSerialize('a + b %= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) %= c') should be (a + b) %= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b %= c') should throw an exception. Was a + b %= c.
+PASS compileAndSerialize('(a + b) %= c') is '(a + b) %= c'
PASS compileAndSerialize('a + (b %= c)') is 'a + (b %= c)'
PASS compileAndSerialize('a += b += c') is 'a += b += c'
-FAIL compileAndSerialize('(a += b) += c') should be (a += b) += c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a += b) += c') is '(a += b) += c'
PASS compileAndSerialize('a += (b += c)') is 'a += (b += c)'
PASS compileAndSerialize('a = b += c') is 'a = b += c'
-FAIL compileAndSerialize('(a = b) += c') should be (a = b) += c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) += c') is '(a = b) += c'
PASS compileAndSerialize('a = (b += c)') is 'a = (b += c)'
PASS compileAndSerialize('a += b + c') is 'a += b + c'
PASS compileAndSerialize('(a += b) + c') is '(a += b) + c'
PASS compileAndSerialize('a += (b + c)') is 'a += (b + c)'
-PASS compileAndSerialize('a + b += c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) += c') should be (a + b) += c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b += c') should throw an exception. Was a + b += c.
+PASS compileAndSerialize('(a + b) += c') is '(a + b) += c'
PASS compileAndSerialize('a + (b += c)') is 'a + (b += c)'
PASS compileAndSerialize('a -= b -= c') is 'a -= b -= c'
-FAIL compileAndSerialize('(a -= b) -= c') should be (a -= b) -= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a -= b) -= c') is '(a -= b) -= c'
PASS compileAndSerialize('a -= (b -= c)') is 'a -= (b -= c)'
PASS compileAndSerialize('a = b -= c') is 'a = b -= c'
-FAIL compileAndSerialize('(a = b) -= c') should be (a = b) -= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) -= c') is '(a = b) -= c'
PASS compileAndSerialize('a = (b -= c)') is 'a = (b -= c)'
PASS compileAndSerialize('a -= b + c') is 'a -= b + c'
PASS compileAndSerialize('(a -= b) + c') is '(a -= b) + c'
PASS compileAndSerialize('a -= (b + c)') is 'a -= (b + c)'
-PASS compileAndSerialize('a + b -= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) -= c') should be (a + b) -= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b -= c') should throw an exception. Was a + b -= c.
+PASS compileAndSerialize('(a + b) -= c') is '(a + b) -= c'
PASS compileAndSerialize('a + (b -= c)') is 'a + (b -= c)'
PASS compileAndSerialize('a <<= b <<= c') is 'a <<= b <<= c'
-FAIL compileAndSerialize('(a <<= b) <<= c') should be (a <<= b) <<= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a <<= b) <<= c') is '(a <<= b) <<= c'
PASS compileAndSerialize('a <<= (b <<= c)') is 'a <<= (b <<= c)'
PASS compileAndSerialize('a = b <<= c') is 'a = b <<= c'
-FAIL compileAndSerialize('(a = b) <<= c') should be (a = b) <<= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) <<= c') is '(a = b) <<= c'
PASS compileAndSerialize('a = (b <<= c)') is 'a = (b <<= c)'
PASS compileAndSerialize('a <<= b + c') is 'a <<= b + c'
PASS compileAndSerialize('(a <<= b) + c') is '(a <<= b) + c'
PASS compileAndSerialize('a <<= (b + c)') is 'a <<= (b + c)'
-PASS compileAndSerialize('a + b <<= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) <<= c') should be (a + b) <<= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b <<= c') should throw an exception. Was a + b <<= c.
+PASS compileAndSerialize('(a + b) <<= c') is '(a + b) <<= c'
PASS compileAndSerialize('a + (b <<= c)') is 'a + (b <<= c)'
PASS compileAndSerialize('a >>= b >>= c') is 'a >>= b >>= c'
-FAIL compileAndSerialize('(a >>= b) >>= c') should be (a >>= b) >>= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a >>= b) >>= c') is '(a >>= b) >>= c'
PASS compileAndSerialize('a >>= (b >>= c)') is 'a >>= (b >>= c)'
PASS compileAndSerialize('a = b >>= c') is 'a = b >>= c'
-FAIL compileAndSerialize('(a = b) >>= c') should be (a = b) >>= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) >>= c') is '(a = b) >>= c'
PASS compileAndSerialize('a = (b >>= c)') is 'a = (b >>= c)'
PASS compileAndSerialize('a >>= b + c') is 'a >>= b + c'
PASS compileAndSerialize('(a >>= b) + c') is '(a >>= b) + c'
PASS compileAndSerialize('a >>= (b + c)') is 'a >>= (b + c)'
-PASS compileAndSerialize('a + b >>= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) >>= c') should be (a + b) >>= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b >>= c') should throw an exception. Was a + b >>= c.
+PASS compileAndSerialize('(a + b) >>= c') is '(a + b) >>= c'
PASS compileAndSerialize('a + (b >>= c)') is 'a + (b >>= c)'
PASS compileAndSerialize('a >>>= b >>>= c') is 'a >>>= b >>>= c'
-FAIL compileAndSerialize('(a >>>= b) >>>= c') should be (a >>>= b) >>>= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a >>>= b) >>>= c') is '(a >>>= b) >>>= c'
PASS compileAndSerialize('a >>>= (b >>>= c)') is 'a >>>= (b >>>= c)'
PASS compileAndSerialize('a = b >>>= c') is 'a = b >>>= c'
-FAIL compileAndSerialize('(a = b) >>>= c') should be (a = b) >>>= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) >>>= c') is '(a = b) >>>= c'
PASS compileAndSerialize('a = (b >>>= c)') is 'a = (b >>>= c)'
PASS compileAndSerialize('a >>>= b + c') is 'a >>>= b + c'
PASS compileAndSerialize('(a >>>= b) + c') is '(a >>>= b) + c'
PASS compileAndSerialize('a >>>= (b + c)') is 'a >>>= (b + c)'
-PASS compileAndSerialize('a + b >>>= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) >>>= c') should be (a + b) >>>= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b >>>= c') should throw an exception. Was a + b >>>= c.
+PASS compileAndSerialize('(a + b) >>>= c') is '(a + b) >>>= c'
PASS compileAndSerialize('a + (b >>>= c)') is 'a + (b >>>= c)'
PASS compileAndSerialize('a &= b &= c') is 'a &= b &= c'
-FAIL compileAndSerialize('(a &= b) &= c') should be (a &= b) &= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a &= b) &= c') is '(a &= b) &= c'
PASS compileAndSerialize('a &= (b &= c)') is 'a &= (b &= c)'
PASS compileAndSerialize('a = b &= c') is 'a = b &= c'
-FAIL compileAndSerialize('(a = b) &= c') should be (a = b) &= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) &= c') is '(a = b) &= c'
PASS compileAndSerialize('a = (b &= c)') is 'a = (b &= c)'
PASS compileAndSerialize('a &= b + c') is 'a &= b + c'
PASS compileAndSerialize('(a &= b) + c') is '(a &= b) + c'
PASS compileAndSerialize('a &= (b + c)') is 'a &= (b + c)'
-PASS compileAndSerialize('a + b &= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) &= c') should be (a + b) &= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b &= c') should throw an exception. Was a + b &= c.
+PASS compileAndSerialize('(a + b) &= c') is '(a + b) &= c'
PASS compileAndSerialize('a + (b &= c)') is 'a + (b &= c)'
PASS compileAndSerialize('a ^= b ^= c') is 'a ^= b ^= c'
-FAIL compileAndSerialize('(a ^= b) ^= c') should be (a ^= b) ^= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a ^= b) ^= c') is '(a ^= b) ^= c'
PASS compileAndSerialize('a ^= (b ^= c)') is 'a ^= (b ^= c)'
PASS compileAndSerialize('a = b ^= c') is 'a = b ^= c'
-FAIL compileAndSerialize('(a = b) ^= c') should be (a = b) ^= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) ^= c') is '(a = b) ^= c'
PASS compileAndSerialize('a = (b ^= c)') is 'a = (b ^= c)'
PASS compileAndSerialize('a ^= b + c') is 'a ^= b + c'
PASS compileAndSerialize('(a ^= b) + c') is '(a ^= b) + c'
PASS compileAndSerialize('a ^= (b + c)') is 'a ^= (b + c)'
-PASS compileAndSerialize('a + b ^= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) ^= c') should be (a + b) ^= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b ^= c') should throw an exception. Was a + b ^= c.
+PASS compileAndSerialize('(a + b) ^= c') is '(a + b) ^= c'
PASS compileAndSerialize('a + (b ^= c)') is 'a + (b ^= c)'
PASS compileAndSerialize('a |= b |= c') is 'a |= b |= c'
-FAIL compileAndSerialize('(a |= b) |= c') should be (a |= b) |= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a |= b) |= c') is '(a |= b) |= c'
PASS compileAndSerialize('a |= (b |= c)') is 'a |= (b |= c)'
PASS compileAndSerialize('a = b |= c') is 'a = b |= c'
-FAIL compileAndSerialize('(a = b) |= c') should be (a = b) |= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(a = b) |= c') is '(a = b) |= c'
PASS compileAndSerialize('a = (b |= c)') is 'a = (b |= c)'
PASS compileAndSerialize('a |= b + c') is 'a |= b + c'
PASS compileAndSerialize('(a |= b) + c') is '(a |= b) + c'
PASS compileAndSerialize('a |= (b + c)') is 'a |= (b + c)'
-PASS compileAndSerialize('a + b |= c') threw exception SyntaxError: Invalid left-hand side in assignment.
-FAIL compileAndSerialize('(a + b) |= c') should be (a + b) |= c. Threw exception SyntaxError: Invalid left-hand side in assignment
+FAIL compileAndSerialize('a + b |= c') should throw an exception. Was a + b |= c.
+PASS compileAndSerialize('(a + b) |= c') is '(a + b) |= c'
PASS compileAndSerialize('a + (b |= c)') is 'a + (b |= c)'
PASS compileAndSerialize('delete a + b') is 'delete a + b'
PASS compileAndSerialize('(delete a) + b') is '(delete a) + b'
@@ -368,12 +368,12 @@ PASS compileAndSerialize('!typeof a') is '!typeof a'
PASS compileAndSerialize('!(typeof a)') is '!(typeof a)'
PASS compileAndSerialize('++a + b') is '++a + b'
PASS compileAndSerialize('(++a) + b') is '(++a) + b'
-FAIL compileAndSerialize('++(a + b)') should be ++(a + b). Threw exception SyntaxError: Invalid left-hand side expression in prefix operation
+PASS compileAndSerialize('++(a + b)') is '++(a + b)'
PASS compileAndSerialize('!++a') is '!++a'
PASS compileAndSerialize('!(++a)') is '!(++a)'
PASS compileAndSerialize('--a + b') is '--a + b'
PASS compileAndSerialize('(--a) + b') is '(--a) + b'
-FAIL compileAndSerialize('--(a + b)') should be --(a + b). Threw exception SyntaxError: Invalid left-hand side expression in prefix operation
+PASS compileAndSerialize('--(a + b)') is '--(a + b)'
PASS compileAndSerialize('!--a') is '!--a'
PASS compileAndSerialize('!(--a)') is '!(--a)'
PASS compileAndSerialize('+ a + b') is '+ a + b'
@@ -398,10 +398,10 @@ PASS compileAndSerialize('!!a') is '!!a'
PASS compileAndSerialize('!(!a)') is '!(!a)'
PASS compileAndSerialize('!a++') is '!a++'
PASS compileAndSerialize('!(a++)') is '!(a++)'
-FAIL compileAndSerialize('(!a)++') should be (!a)++. Threw exception SyntaxError: Invalid left-hand side expression in postfix operation
+PASS compileAndSerialize('(!a)++') is '(!a)++'
PASS compileAndSerialize('!a--') is '!a--'
PASS compileAndSerialize('!(a--)') is '!(a--)'
-FAIL compileAndSerialize('(!a)--') should be (!a)--. Threw exception SyntaxError: Invalid left-hand side expression in postfix operation
+PASS compileAndSerialize('(!a)--') is '(!a)--'
PASS compileAndSerialize('(-1)[a]') is '(-1)[a]'
PASS compileAndSerialize('(-1)[a] = b') is '(-1)[a] = b'
PASS compileAndSerialize('(-1)[a] += b') is '(-1)[a] += b'
@@ -441,42 +441,42 @@ PASS compileAndSerialize('(1).a += b') is '(1).a += b'
PASS compileAndSerialize('(1).a++') is '(1).a++'
PASS compileAndSerialize('++(1).a') is '++(1).a'
PASS compileAndSerialize('(1).a()') is '(1).a()'
-FAIL compileAndSerialize('(-1) = a') should be (-1) = a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) = a') should be (- 0) = a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 = a') should be 1 = a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) *= a') should be (-1) *= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) *= a') should be (- 0) *= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 *= a') should be 1 *= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) /= a') should be (-1) /= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) /= a') should be (- 0) /= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 /= a') should be 1 /= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) %= a') should be (-1) %= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) %= a') should be (- 0) %= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 %= a') should be 1 %= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) += a') should be (-1) += a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) += a') should be (- 0) += a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 += a') should be 1 += a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) -= a') should be (-1) -= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) -= a') should be (- 0) -= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 -= a') should be 1 -= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) <<= a') should be (-1) <<= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) <<= a') should be (- 0) <<= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 <<= a') should be 1 <<= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) >>= a') should be (-1) >>= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) >>= a') should be (- 0) >>= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 >>= a') should be 1 >>= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) >>>= a') should be (-1) >>>= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) >>>= a') should be (- 0) >>>= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 >>>= a') should be 1 >>>= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) &= a') should be (-1) &= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) &= a') should be (- 0) &= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 &= a') should be 1 &= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) ^= a') should be (-1) ^= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) ^= a') should be (- 0) ^= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 ^= a') should be 1 ^= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(-1) |= a') should be (-1) |= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('(- 0) |= a') should be (- 0) |= a. Threw exception SyntaxError: Invalid left-hand side in assignment
-FAIL compileAndSerialize('1 |= a') should be 1 |= a. Threw exception SyntaxError: Invalid left-hand side in assignment
+PASS compileAndSerialize('(-1) = a') is '(-1) = a'
+PASS compileAndSerialize('(- 0) = a') is '(- 0) = a'
+PASS compileAndSerialize('1 = a') is '1 = a'
+PASS compileAndSerialize('(-1) *= a') is '(-1) *= a'
+PASS compileAndSerialize('(- 0) *= a') is '(- 0) *= a'
+PASS compileAndSerialize('1 *= a') is '1 *= a'
+PASS compileAndSerialize('(-1) /= a') is '(-1) /= a'
+PASS compileAndSerialize('(- 0) /= a') is '(- 0) /= a'
+PASS compileAndSerialize('1 /= a') is '1 /= a'
+PASS compileAndSerialize('(-1) %= a') is '(-1) %= a'
+PASS compileAndSerialize('(- 0) %= a') is '(- 0) %= a'
+PASS compileAndSerialize('1 %= a') is '1 %= a'
+PASS compileAndSerialize('(-1) += a') is '(-1) += a'
+PASS compileAndSerialize('(- 0) += a') is '(- 0) += a'
+PASS compileAndSerialize('1 += a') is '1 += a'
+PASS compileAndSerialize('(-1) -= a') is '(-1) -= a'
+PASS compileAndSerialize('(- 0) -= a') is '(- 0) -= a'
+PASS compileAndSerialize('1 -= a') is '1 -= a'
+PASS compileAndSerialize('(-1) <<= a') is '(-1) <<= a'
+PASS compileAndSerialize('(- 0) <<= a') is '(- 0) <<= a'
+PASS compileAndSerialize('1 <<= a') is '1 <<= a'
+PASS compileAndSerialize('(-1) >>= a') is '(-1) >>= a'
+PASS compileAndSerialize('(- 0) >>= a') is '(- 0) >>= a'
+PASS compileAndSerialize('1 >>= a') is '1 >>= a'
+PASS compileAndSerialize('(-1) >>>= a') is '(-1) >>>= a'
+PASS compileAndSerialize('(- 0) >>>= a') is '(- 0) >>>= a'
+PASS compileAndSerialize('1 >>>= a') is '1 >>>= a'
+PASS compileAndSerialize('(-1) &= a') is '(-1) &= a'
+PASS compileAndSerialize('(- 0) &= a') is '(- 0) &= a'
+PASS compileAndSerialize('1 &= a') is '1 &= a'
+PASS compileAndSerialize('(-1) ^= a') is '(-1) ^= a'
+PASS compileAndSerialize('(- 0) ^= a') is '(- 0) ^= a'
+PASS compileAndSerialize('1 ^= a') is '1 ^= a'
+PASS compileAndSerialize('(-1) |= a') is '(-1) |= a'
+PASS compileAndSerialize('(- 0) |= a') is '(- 0) |= a'
+PASS compileAndSerialize('1 |= a') is '1 |= a'
PASS compileAndSerializeLeftmostTest('({ }).x') is '({ }).x'
PASS compileAndSerializeLeftmostTest('x = { }') is 'x = { }'
PASS compileAndSerializeLeftmostTest('(function () { })()') is '(function () { })()'
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/postfix-syntax-expected.txt b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/postfix-syntax-expected.txt
index c2ab500..9c04e84 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/postfix-syntax-expected.txt
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/postfix-syntax-expected.txt
@@ -13,8 +13,8 @@ PASS (y, x++) is 6
PASS ((x))++ is 7
PASS ((window.x))++ is 8
PASS ((window["x"]))++ is 9
-PASS (y, x)++ threw exception SyntaxError: Invalid left-hand side expression in postfix operation.
-PASS (true ? x : y)++ threw exception SyntaxError: Invalid left-hand side expression in postfix operation.
+PASS (y, x)++ threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS (true ? x : y)++ threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
PASS x++++ threw exception SyntaxError: Unexpected token ++.
PASS x is 0
PASS y is 0
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/prefix-syntax-expected.txt b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/prefix-syntax-expected.txt
index 363e581..50d1947 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/prefix-syntax-expected.txt
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/prefix-syntax-expected.txt
@@ -13,9 +13,10 @@ PASS (y, ++x) is 7
PASS ++((x)) is 8
PASS ++((window.x)) is 9
PASS ++((window["x"])) is 10
-PASS ++(y, x) threw exception SyntaxError: Invalid left-hand side expression in prefix operation.
-PASS ++(true ? x : y) threw exception SyntaxError: Invalid left-hand side expression in prefix operation.
-PASS ++++x threw exception SyntaxError: Invalid left-hand side expression in prefix operation.
+PASS ++(y, x) threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS ++(true ? x : y) threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS ++++x threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
PASS successfullyParsed is true
TEST COMPLETE
+
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/toString-prefix-postfix-preserve-parens-expected.txt b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/toString-prefix-postfix-preserve-parens-expected.txt
index 5c2c64e..4f09ecaa 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/toString-prefix-postfix-preserve-parens-expected.txt
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/js/toString-prefix-postfix-preserve-parens-expected.txt
@@ -1,4 +1,61 @@
-CONSOLE MESSAGE: line 6: Uncaught SyntaxError: Invalid left-hand side expression in postfix operation
-FAIL successfullyParsed should be true. Threw exception ReferenceError: successfullyParsed is not defined
+This test checks that toString() round-trip on a function that has prefix, postfix and typeof operators applied to group expression will not remove the grouping. Also checks that evaluation of such a expression produces run-time exception
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS unevalf(eval(unevalf(prefix_should_preserve_parens))) is unevalf(prefix_should_preserve_parens)
+PASS /.*\(+x\)*, y\)/.test(unevalf(prefix_should_preserve_parens)) is true
+PASS prefix_should_preserve_parens(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS eval(unevalf(prefix_should_preserve_parens))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS unevalf(eval(unevalf(postfix_should_preserve_parens))) is unevalf(postfix_should_preserve_parens)
+PASS /.*\(+x\)*, y\)/.test(unevalf(postfix_should_preserve_parens)) is true
+PASS postfix_should_preserve_parens(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS eval(unevalf(postfix_should_preserve_parens))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS unevalf(eval(unevalf(both_should_preserve_parens))) is unevalf(both_should_preserve_parens)
+PASS /.*\(+x\)*, y\)/.test(unevalf(both_should_preserve_parens)) is true
+PASS both_should_preserve_parens(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS eval(unevalf(both_should_preserve_parens))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS unevalf(eval(unevalf(prefix_should_preserve_parens_multi))) is unevalf(prefix_should_preserve_parens_multi)
+PASS /.*\(+x\)*, y\)/.test(unevalf(prefix_should_preserve_parens_multi)) is true
+PASS prefix_should_preserve_parens_multi(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS eval(unevalf(prefix_should_preserve_parens_multi))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS unevalf(eval(unevalf(postfix_should_preserve_parens_multi))) is unevalf(postfix_should_preserve_parens_multi)
+PASS /.*\(+x\)*, y\)/.test(unevalf(postfix_should_preserve_parens_multi)) is true
+PASS postfix_should_preserve_parens_multi(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS eval(unevalf(postfix_should_preserve_parens_multi))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS unevalf(eval(unevalf(prefix_should_preserve_parens_multi1))) is unevalf(prefix_should_preserve_parens_multi1)
+PASS /.*\(+x\)*, y\)/.test(unevalf(prefix_should_preserve_parens_multi1)) is true
+PASS prefix_should_preserve_parens_multi1(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS eval(unevalf(prefix_should_preserve_parens_multi1))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS unevalf(eval(unevalf(postfix_should_preserve_parens_multi1))) is unevalf(postfix_should_preserve_parens_multi1)
+PASS /.*\(+x\)*, y\)/.test(unevalf(postfix_should_preserve_parens_multi1)) is true
+PASS postfix_should_preserve_parens_multi1(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS eval(unevalf(postfix_should_preserve_parens_multi1))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS unevalf(eval(unevalf(prefix_should_preserve_parens_multi2))) is unevalf(prefix_should_preserve_parens_multi2)
+PASS /.*\(+x\)*, y\)/.test(unevalf(prefix_should_preserve_parens_multi2)) is true
+PASS prefix_should_preserve_parens_multi2(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS eval(unevalf(prefix_should_preserve_parens_multi2))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in prefix operation.
+PASS unevalf(eval(unevalf(postfix_should_preserve_parens_multi2))) is unevalf(postfix_should_preserve_parens_multi2)
+PASS /.*\(+x\)*, y\)/.test(unevalf(postfix_should_preserve_parens_multi2)) is true
+PASS postfix_should_preserve_parens_multi2(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS eval(unevalf(postfix_should_preserve_parens_multi2))(1, 2, 3); threw exception ReferenceError: Invalid left-hand side expression in postfix operation.
+PASS unevalf(eval(unevalf(typeof_should_preserve_parens))) is unevalf(typeof_should_preserve_parens)
+PASS /.*\(+x\)*, y\)/.test(unevalf(typeof_should_preserve_parens)) is true
+PASS typeof_should_preserve_parens('a', 1); is 'number'
+PASS eval(unevalf(typeof_should_preserve_parens))('a', 1); is 'number'
+PASS unevalf(eval(unevalf(typeof_should_preserve_parens1))) is unevalf(typeof_should_preserve_parens1)
+PASS /.*\(+x\)*, y\)/.test(unevalf(typeof_should_preserve_parens1)) is true
+PASS typeof_should_preserve_parens1('a', 1); is 'number'
+PASS eval(unevalf(typeof_should_preserve_parens1))('a', 1); is 'number'
+PASS unevalf(eval(unevalf(typeof_should_preserve_parens2))) is unevalf(typeof_should_preserve_parens2)
+PASS /.*\(+x\)*, y\)/.test(unevalf(typeof_should_preserve_parens2)) is true
+PASS typeof_should_preserve_parens2('a', 1); is 'number'
+PASS eval(unevalf(typeof_should_preserve_parens2))('a', 1); is 'number'
+PASS unevalf(eval(unevalf(typeof_should_preserve_parens_multi))) is unevalf(typeof_should_preserve_parens_multi)
+PASS /.*\(+x\)*, y\)/.test(unevalf(typeof_should_preserve_parens_multi)) is true
+PASS typeof_should_preserve_parens_multi('a', 1); is 'number'
+PASS eval(unevalf(typeof_should_preserve_parens_multi))('a', 1); is 'number'
+PASS successfullyParsed is true
TEST COMPLETE
+