diff options
author | pinkerton@google.com <pinkerton@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-17 22:30:03 +0000 |
---|---|---|
committer | pinkerton@google.com <pinkerton@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-17 22:30:03 +0000 |
commit | 6f666448fe72b6f98a241cb9d83a2a15aa4ff24e (patch) | |
tree | bfbef3d8bff93ccf323119b12d49654777ae8b75 | |
parent | 68342e72e530f4b38957cb1b62f67602f867f1c8 (diff) | |
download | chromium_src-6f666448fe72b6f98a241cb9d83a2a15aa4ff24e.zip chromium_src-6f666448fe72b6f98a241cb9d83a2a15aa4ff24e.tar.gz chromium_src-6f666448fe72b6f98a241cb9d83a2a15aa4ff24e.tar.bz2 |
bucketing and baselines for mac
Review URL: http://codereview.chromium.org/15007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7174 0039d316-1c4b-4281-b951-d872f2087c98
43 files changed, 3638 insertions, 68 deletions
diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/const-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/const-expected.txt new file mode 100644 index 0000000..27d9985 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/const-expected.txt @@ -0,0 +1,55 @@ +This test checks that const declarations in JavaScript work and are readonly. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS const redef='a'; const redef='a'; threw exception TypeError: const 'redef' has already been declared. +PASS x is "RIGHT" +PASS y is "RIGHT" +PASS a is 1 +PASS one is 1 +PASS a is 1 +PASS one is 1 +PASS a is 2 +PASS one is 1 +PASS a is 0 +PASS one is 1 +PASS a is 3 +PASS one is 1 +PASS a is 2 +PASS one is 1 +PASS function f() { const one = 1; one++; return one; } f(); is 1 +PASS function f() { const oneString = '1'; return oneString++; } f(); is 1 +PASS function f() { const one = 1; return one++; } f(); is 1 +PASS function f() { const one = 1; one--; return one; } f(); is 1 +PASS function f() { const oneString = '1'; return oneString--; } f(); is 1 +PASS function f() { const one = 1; return one--; } f(); is 1 +PASS function f() { const one = 1; ++one; return one; } f(); is 1 +PASS function f() { const one = 1; return ++one; } f(); is 2 +PASS function f() { const one = 1; --one; return one; } f(); is 1 +PASS function f() { const one = 1; return --one; } f(); is 0 +PASS function f() { const one = 1; one += 2; return one; } f(); is 1 +PASS function f() { const one = 1; return one += 2; } f(); is 3 +PASS function f() { const one = 1; one = 2; return one; } f(); is 1 +PASS function f() { const one = 1; return one = 2; } f(); is 2 +PASS one++ is 1 +PASS one is 1 +PASS one-- is 1 +PASS one is 1 +PASS ++one is 2 +PASS one is 1 +PASS --one is 0 +PASS one is 1 +PASS one += 1 is 2 +PASS one is 1 +PASS one = 2 is 2 +PASS one is 1 +PASS object.inWith1 is 'RIGHT' +PASS inWith2 is 'RIGHT' +PASS (function(){ one = 2; return one; })() is 1 +PASS f() is f +PASS const a; is undefined +PASS successfullyParsed is true + +TEST COMPLETE + diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/cyclic-proto-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/cyclic-proto-expected.txt new file mode 100644 index 0000000..7ca69bb --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/cyclic-proto-expected.txt @@ -0,0 +1,11 @@ +This test checks that setting a cyclic value for __proto__ throws an exception and does not alter __proto__. This was reported as bug 17927. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS x.__proto__ = x; threw exception Error: Cyclic __proto__ value. +PASS x.__proto__ is originalProto +PASS successfullyParsed is true + +TEST COMPLETE + diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/cyclic-prototypes-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/cyclic-prototypes-expected.txt new file mode 100644 index 0000000..955cd0a --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/cyclic-prototypes-expected.txt @@ -0,0 +1,9 @@ +This test makes sure we don't hang when setting cyclic prototype values: http://bugs.webkit.org/show_bug.cgi?id=6985 + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS o1.__proto__ = o3 threw exception Error: Cyclic __proto__ value. +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/deep-recursion-test-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/deep-recursion-test-expected.txt new file mode 100644 index 0000000..14cb370 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/deep-recursion-test-expected.txt @@ -0,0 +1,12 @@ +This test how deep we can recurse, and that we get an exception when we do, as opposed to a stack overflow. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +FAIL msg should be RangeError: Maximum call stack size exceeded.. Was RangeError: Maximum call stack size exceeded. +FAIL msg should be RangeError: Maximum call stack size exceeded.. Was RangeError: Maximum call stack size exceeded. +FAIL msg should be RangeError: Maximum call stack size exceeded.. Was RangeError: Maximum call stack size exceeded. +FAIL msg should be RangeError: Maximum call stack size exceeded.. Was RangeError: Maximum call stack size exceeded. +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 new file mode 100644 index 0000000..90843b9 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/exception-codegen-crash-expected.txt @@ -0,0 +1,4 @@ +CONSOLE MESSAGE: line 1: Uncaught SyntaxError: 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/exception-sequencing-binops2-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/exception-sequencing-binops2-expected.txt new file mode 100644 index 0000000..d1adeb0 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/exception-sequencing-binops2-expected.txt @@ -0,0 +1,174 @@ +Test exception handling with various arithmetic and logic operators, it checks the following things: +In assignment expressions the lefthand side is not modified if the right hand side throws +If the left hand side of a binary operator throws then the right hand should not be executed +If valueOf/toString throws in the left hand expression of a binop it does not prevent evaluation of the right hand expression, but does prevent evaluation of toString/valueOf on the rhs. +PASS: Handled "1 < valueOfThrower" correctly. +PASS: Handled "1 < toStringThrower" correctly. +PASS: Handled "1 < throwingProperty" correctly. +PASS: Handled "1 < ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "1 < getterThrower.value" correctly. +PASS: Handled "'string' < valueOfThrower" correctly. +PASS: Handled "'string' < toStringThrower" correctly. +PASS: Handled "'string' < throwingProperty" correctly. +PASS: Handled "'string' < ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "'string' < getterThrower.value" correctly. +PASS: Handled "valueOfThrower < rhsNonZeroNum" correctly. +PASS: Handled "toStringThrower < rhsNonZeroNum" correctly. +PASS: Handled "throwingProperty < rhsNonZeroNum" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty < rhsNonZeroNum" correctly. +PASS: Handled "getterThrower.value < rhsNonZeroNum" correctly. +PASS: Handled "valueOfThrower < rhsToStringThrower" correctly. +PASS: Handled "toStringThrower < rhsToStringThrower" correctly. +PASS: Handled "throwingProperty < rhsToStringThrower" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty < rhsToStringThrower" correctly. +PASS: Handled "getterThrower.value < rhsToStringThrower" correctly. +PASS: Handled "valueOfThrower < rhsGetterTester.value" correctly. +PASS: Handled "toStringThrower < rhsGetterTester.value" correctly. +PASS: Handled "1 <= valueOfThrower" correctly. +PASS: Handled "1 <= toStringThrower" correctly. +PASS: Handled "1 <= throwingProperty" correctly. +PASS: Handled "1 <= ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "1 <= getterThrower.value" correctly. +PASS: Handled "'string' <= valueOfThrower" correctly. +PASS: Handled "'string' <= toStringThrower" correctly. +PASS: Handled "'string' <= throwingProperty" correctly. +PASS: Handled "'string' <= ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "'string' <= getterThrower.value" correctly. +FAIL: "valueOfThrower <= rhsNonZeroNum" threw exception, but executed right hand half of expression +FAIL: "toStringThrower <= rhsNonZeroNum" threw exception, but executed right hand half of expression +PASS: Handled "throwingProperty <= rhsNonZeroNum" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty <= rhsNonZeroNum" correctly. +PASS: Handled "getterThrower.value <= rhsNonZeroNum" correctly. +FAIL: "valueOfThrower <= rhsToStringThrower" threw exception, but executed right hand half of expression +FAIL: "toStringThrower <= rhsToStringThrower" threw exception, but executed right hand half of expression +PASS: Handled "throwingProperty <= rhsToStringThrower" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty <= rhsToStringThrower" correctly. +PASS: Handled "getterThrower.value <= rhsToStringThrower" correctly. +PASS: Handled "valueOfThrower <= rhsGetterTester.value" correctly. +PASS: Handled "toStringThrower <= rhsGetterTester.value" correctly. +PASS: Handled "1 >= valueOfThrower" correctly. +PASS: Handled "1 >= toStringThrower" correctly. +PASS: Handled "1 >= throwingProperty" correctly. +PASS: Handled "1 >= ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "1 >= getterThrower.value" correctly. +PASS: Handled "'string' >= valueOfThrower" correctly. +PASS: Handled "'string' >= toStringThrower" correctly. +PASS: Handled "'string' >= throwingProperty" correctly. +PASS: Handled "'string' >= ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "'string' >= getterThrower.value" correctly. +PASS: Handled "valueOfThrower >= rhsNonZeroNum" correctly. +PASS: Handled "toStringThrower >= rhsNonZeroNum" correctly. +PASS: Handled "throwingProperty >= rhsNonZeroNum" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty >= rhsNonZeroNum" correctly. +PASS: Handled "getterThrower.value >= rhsNonZeroNum" correctly. +PASS: Handled "valueOfThrower >= rhsToStringThrower" correctly. +PASS: Handled "toStringThrower >= rhsToStringThrower" correctly. +PASS: Handled "throwingProperty >= rhsToStringThrower" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty >= rhsToStringThrower" correctly. +PASS: Handled "getterThrower.value >= rhsToStringThrower" correctly. +PASS: Handled "valueOfThrower >= rhsGetterTester.value" correctly. +PASS: Handled "toStringThrower >= rhsGetterTester.value" correctly. +PASS: Handled "1 > valueOfThrower" correctly. +PASS: Handled "1 > toStringThrower" correctly. +PASS: Handled "1 > throwingProperty" correctly. +PASS: Handled "1 > ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "1 > getterThrower.value" correctly. +PASS: Handled "'string' > valueOfThrower" correctly. +PASS: Handled "'string' > toStringThrower" correctly. +PASS: Handled "'string' > throwingProperty" correctly. +PASS: Handled "'string' > ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "'string' > getterThrower.value" correctly. +FAIL: "valueOfThrower > rhsNonZeroNum" threw exception, but executed right hand half of expression +FAIL: "toStringThrower > rhsNonZeroNum" threw exception, but executed right hand half of expression +PASS: Handled "throwingProperty > rhsNonZeroNum" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty > rhsNonZeroNum" correctly. +PASS: Handled "getterThrower.value > rhsNonZeroNum" correctly. +FAIL: "valueOfThrower > rhsToStringThrower" threw exception, but executed right hand half of expression +FAIL: "toStringThrower > rhsToStringThrower" threw exception, but executed right hand half of expression +PASS: Handled "throwingProperty > rhsToStringThrower" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty > rhsToStringThrower" correctly. +PASS: Handled "getterThrower.value > rhsToStringThrower" correctly. +PASS: Handled "valueOfThrower > rhsGetterTester.value" correctly. +PASS: Handled "toStringThrower > rhsGetterTester.value" correctly. +PASS: Handled "1 == valueOfThrower" correctly. +PASS: Handled "1 == toStringThrower" correctly. +PASS: Handled "1 == throwingProperty" correctly. +PASS: Handled "1 == ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "1 == getterThrower.value" correctly. +PASS: Handled "'string' == valueOfThrower" correctly. +PASS: Handled "'string' == toStringThrower" correctly. +PASS: Handled "'string' == throwingProperty" correctly. +PASS: Handled "'string' == ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "'string' == getterThrower.value" correctly. +PASS: Handled "throwingProperty == rhsNonZeroNum" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty == rhsNonZeroNum" correctly. +PASS: Handled "getterThrower.value == rhsNonZeroNum" correctly. +PASS: Handled "throwingProperty == rhsToStringThrower" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty == rhsToStringThrower" correctly. +PASS: Handled "getterThrower.value == rhsToStringThrower" correctly. +PASS: Handled "valueOfThrower == rhsGetterTester.value" correctly. +PASS: Handled "toStringThrower == rhsGetterTester.value" correctly. +PASS: Handled "1 != valueOfThrower" correctly. +PASS: Handled "1 != toStringThrower" correctly. +PASS: Handled "1 != throwingProperty" correctly. +PASS: Handled "1 != ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "1 != getterThrower.value" correctly. +PASS: Handled "'string' != valueOfThrower" correctly. +PASS: Handled "'string' != toStringThrower" correctly. +PASS: Handled "'string' != throwingProperty" correctly. +PASS: Handled "'string' != ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "'string' != getterThrower.value" correctly. +PASS: Handled "throwingProperty != rhsNonZeroNum" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty != rhsNonZeroNum" correctly. +PASS: Handled "getterThrower.value != rhsNonZeroNum" correctly. +PASS: Handled "throwingProperty != rhsToStringThrower" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty != rhsToStringThrower" correctly. +PASS: Handled "getterThrower.value != rhsToStringThrower" correctly. +PASS: Handled "valueOfThrower != rhsGetterTester.value" correctly. +PASS: Handled "toStringThrower != rhsGetterTester.value" correctly. +PASS: Handled "1 << valueOfThrower" correctly. +PASS: Handled "1 << toStringThrower" correctly. +PASS: Handled "1 << throwingProperty" correctly. +PASS: Handled "1 << ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "1 << getterThrower.value" correctly. +PASS: Handled "'string' << valueOfThrower" correctly. +PASS: Handled "'string' << toStringThrower" correctly. +PASS: Handled "'string' << throwingProperty" correctly. +PASS: Handled "'string' << ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "'string' << getterThrower.value" correctly. +PASS: Handled "valueOfThrower << rhsNonZeroNum" correctly. +PASS: Handled "toStringThrower << rhsNonZeroNum" correctly. +PASS: Handled "throwingProperty << rhsNonZeroNum" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty << rhsNonZeroNum" correctly. +PASS: Handled "getterThrower.value << rhsNonZeroNum" correctly. +PASS: Handled "valueOfThrower << rhsToStringThrower" correctly. +PASS: Handled "toStringThrower << rhsToStringThrower" correctly. +PASS: Handled "throwingProperty << rhsToStringThrower" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty << rhsToStringThrower" correctly. +PASS: Handled "getterThrower.value << rhsToStringThrower" correctly. +PASS: Handled "valueOfThrower << rhsGetterTester.value" correctly. +PASS: Handled "toStringThrower << rhsGetterTester.value" correctly. +PASS: Handled "1 >> valueOfThrower" correctly. +PASS: Handled "1 >> toStringThrower" correctly. +PASS: Handled "1 >> throwingProperty" correctly. +PASS: Handled "1 >> ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "1 >> getterThrower.value" correctly. +PASS: Handled "'string' >> valueOfThrower" correctly. +PASS: Handled "'string' >> toStringThrower" correctly. +PASS: Handled "'string' >> throwingProperty" correctly. +PASS: Handled "'string' >> ({get throwingProperty(){ throw "throwing property" }}).throwingProperty" correctly. +PASS: Handled "'string' >> getterThrower.value" correctly. +PASS: Handled "valueOfThrower >> rhsNonZeroNum" correctly. +PASS: Handled "toStringThrower >> rhsNonZeroNum" correctly. +PASS: Handled "throwingProperty >> rhsNonZeroNum" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty >> rhsNonZeroNum" correctly. +PASS: Handled "getterThrower.value >> rhsNonZeroNum" correctly. +PASS: Handled "valueOfThrower >> rhsToStringThrower" correctly. +PASS: Handled "toStringThrower >> rhsToStringThrower" correctly. +PASS: Handled "throwingProperty >> rhsToStringThrower" correctly. +PASS: Handled "({get throwingProperty(){ throw "throwing property" }}).throwingProperty >> rhsToStringThrower" correctly. +PASS: Handled "getterThrower.value >> rhsToStringThrower" correctly. +PASS: Handled "valueOfThrower >> rhsGetterTester.value" correctly. +PASS: Handled "toStringThrower >> rhsGetterTester.value" correctly. +Passed 160 of 168 tests. + diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/function-toString-object-literals-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/function-toString-object-literals-expected.txt new file mode 100644 index 0000000..219526b --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/function-toString-object-literals-expected.txt @@ -0,0 +1,30 @@ +This test checks that object literals are serialized properly. It's needed in part because JavaScriptCore converts numeric property names to string and back. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS compileAndSerialize('a = { 1: null }') is 'a = { 1: null }' +PASS compileAndSerialize('a = { 0: null }') is 'a = { 0: null }' +PASS compileAndSerialize('a = { 1.0: null }') is 'a = { 1.0: null }' +PASS compileAndSerialize('a = { "1.0": null }') is 'a = { "1.0": null }' +PASS compileAndSerialize('a = { 1e-500: null }') is 'a = { 1e-500: null }' +PASS compileAndSerialize('a = { 1e-300: null }') is 'a = { 1e-300: null }' +PASS compileAndSerialize('a = { 1e300: null }') is 'a = { 1e300: null }' +PASS compileAndSerialize('a = { 1e500: null }') is 'a = { 1e500: null }' +PASS compileAndSerialize('a = { NaN: null }') is 'a = { NaN: null }' +PASS compileAndSerialize('a = { Infinity: null }') is 'a = { Infinity: null }' +PASS compileAndSerialize('a = { "1": null }') is 'a = { "1": null }' +PASS compileAndSerialize('a = { "1hi": null }') is 'a = { "1hi": null }' +PASS compileAndSerialize('a = { "\'": null }') is 'a = { "\'": null }' +PASS compileAndSerialize('a = { "\\"": null }') is 'a = { "\\"": null }' +PASS compileAndSerialize('a = { get x() { } }') is 'a = { get x() { } }' +PASS compileAndSerialize('a = { set x(y) { } }') is 'a = { set x(y) { } }' +PASS compileAndSerialize('a = { --1: null }') threw exception SyntaxError: Unexpected token --. +PASS compileAndSerialize('a = { -NaN: null }') threw exception SyntaxError: Unexpected token -. +PASS compileAndSerialize('a = { -0: null }') threw exception SyntaxError: Unexpected token -. +PASS compileAndSerialize('a = { -0.0: null }') threw exception SyntaxError: Unexpected token -. +PASS compileAndSerialize('a = { -Infinity: null }') threw exception SyntaxError: Unexpected token -. +PASS successfullyParsed is true + +TEST COMPLETE + 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 new file mode 100644 index 0000000..4fe27e2 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/function-toString-parentheses-expected.txt @@ -0,0 +1,502 @@ +This test checks that parentheses are preserved when significant, and not added where inappropriate. We need this test because the JavaScriptCore parser removes all parentheses and the serializer then adds them back. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +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)') 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') 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') 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)') 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') 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') 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)') 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') 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') 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)') 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') 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') 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 instanceof c') is 'a << b instanceof c' +PASS compileAndSerialize('(a << b) instanceof c') is '(a << b) instanceof c' +PASS compileAndSerialize('a << (b instanceof c)') is 'a << (b instanceof c)' +PASS compileAndSerialize('a << b in c') is 'a << b in c' +PASS compileAndSerialize('(a << b) in c') is '(a << b) in c' +PASS compileAndSerialize('a << (b in c)') is 'a << (b in 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') 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') 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)') 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') 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') 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)') 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') 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') 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)') 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') 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') 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)') is 'a >= (b == c)' +PASS compileAndSerialize('a instanceof b instanceof c') is 'a instanceof b instanceof c' +PASS compileAndSerialize('(a instanceof b) instanceof c') is '(a instanceof b) instanceof c' +PASS compileAndSerialize('a instanceof (b instanceof c)') is 'a instanceof (b instanceof c)' +PASS compileAndSerialize('a < b instanceof c') is 'a < b instanceof c' +PASS compileAndSerialize('(a < b) instanceof c') is '(a < b) instanceof c' +PASS compileAndSerialize('a < (b instanceof c)') is 'a < (b instanceof c)' +PASS compileAndSerialize('a instanceof b == c') is 'a instanceof b == c' +PASS compileAndSerialize('(a instanceof b) == c') is '(a instanceof b) == c' +PASS compileAndSerialize('a instanceof (b == c)') is 'a instanceof (b == c)' +PASS compileAndSerialize('a in b in c') is 'a in b in c' +PASS compileAndSerialize('(a in b) in c') is '(a in b) in c' +PASS compileAndSerialize('a in (b in c)') is 'a in (b in c)' +PASS compileAndSerialize('a < b in c') is 'a < b in c' +PASS compileAndSerialize('(a < b) in c') is '(a < b) in c' +PASS compileAndSerialize('a < (b in c)') is 'a < (b in c)' +PASS compileAndSerialize('a in b == c') is 'a in b == c' +PASS compileAndSerialize('(a in b) == c') is '(a in b) == c' +PASS compileAndSerialize('a in (b == c)') is 'a in (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') 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') 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)') 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') 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') 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)') 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') 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') 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)') 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') 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') 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)') 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') 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 +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' +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') 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 +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' +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') 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 +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' +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') 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 +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' +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') 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 +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' +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') 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 +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' +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') 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 +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' +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') 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 +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' +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') 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 +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' +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') 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 +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' +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') 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 +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' +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') 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 +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' +PASS compileAndSerialize('delete (a + b)') is 'delete (a + b)' +PASS compileAndSerialize('!delete a') is '!delete a' +PASS compileAndSerialize('!(delete a)') is '!(delete a)' +PASS compileAndSerialize('void a + b') is 'void a + b' +PASS compileAndSerialize('(void a) + b') is '(void a) + b' +PASS compileAndSerialize('void (a + b)') is 'void (a + b)' +PASS compileAndSerialize('!void a') is '!void a' +PASS compileAndSerialize('!(void a)') is '!(void a)' +PASS compileAndSerialize('typeof a + b') is 'typeof a + b' +PASS compileAndSerialize('(typeof a) + b') is '(typeof a) + b' +PASS compileAndSerialize('typeof (a + b)') is 'typeof (a + b)' +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') 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') is '!--a' +PASS compileAndSerialize('!(--a)') is '!(--a)' +PASS compileAndSerialize('+ a + b') is '+ a + b' +PASS compileAndSerialize('(+ a) + b') is '(+ a) + b' +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' +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' +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' +PASS compileAndSerialize('!(a + b)') is '!(a + b)' +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--)' +FAIL compileAndSerialize('(!a)--') should be (!a)--. Threw exception SyntaxError: Invalid left-hand side expression in postfix operation +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' +PASS compileAndSerialize('(-1)[a]++') is '(-1)[a]++' +PASS compileAndSerialize('++(-1)[a]') is '++(-1)[a]' +PASS compileAndSerialize('(-1)[a]()') is '(-1)[a]()' +PASS compileAndSerialize('new (-1)()') is 'new (-1)()' +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' +PASS compileAndSerialize('(-1).a++') is '(-1).a++' +PASS compileAndSerialize('++(-1).a') is '++(-1).a' +PASS compileAndSerialize('(-1).a()') is '(-1).a()' +PASS compileAndSerialize('(- 0)[a]') is '(- 0)[a]' +PASS compileAndSerialize('(- 0)[a] = b') is '(- 0)[a] = b' +PASS compileAndSerialize('(- 0)[a] += b') is '(- 0)[a] += b' +PASS compileAndSerialize('(- 0)[a]++') is '(- 0)[a]++' +PASS compileAndSerialize('++(- 0)[a]') is '++(- 0)[a]' +PASS compileAndSerialize('(- 0)[a]()') is '(- 0)[a]()' +PASS compileAndSerialize('new (- 0)()') is 'new (- 0)()' +PASS compileAndSerialize('(- 0).a') is '(- 0).a' +PASS compileAndSerialize('(- 0).a = b') is '(- 0).a = b' +PASS compileAndSerialize('(- 0).a += b') is '(- 0).a += b' +PASS compileAndSerialize('(- 0).a++') is '(- 0).a++' +PASS compileAndSerialize('++(- 0).a') is '++(- 0).a' +PASS compileAndSerialize('(- 0).a()') is '(- 0).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' +PASS compileAndSerialize('(1)[a]++') is '(1)[a]++' +PASS compileAndSerialize('++(1)[a]') is '++(1)[a]' +PASS compileAndSerialize('(1)[a]()') is '(1)[a]()' +PASS compileAndSerialize('new (1)()') is 'new (1)()' +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' +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 compileAndSerializeLeftmostTest('({ }).x') is '({ }).x' +PASS compileAndSerializeLeftmostTest('x = { }') is 'x = { }' +PASS compileAndSerializeLeftmostTest('(function () { })()') is '(function () { })()' +PASS compileAndSerializeLeftmostTest('x = function () { }') is 'x = function () { }' +PASS compileAndSerializeLeftmostTest('var a') is 'var a' +PASS compileAndSerializeLeftmostTest('var a = 1') is 'var a = 1' +PASS compileAndSerializeLeftmostTest('var a, b') is 'var a, b' +PASS compileAndSerializeLeftmostTest('var a = 1, b = 2') is 'var a = 1, b = 2' +PASS compileAndSerializeLeftmostTest('var a, b, c') is 'var a, b, c' +PASS compileAndSerializeLeftmostTest('var a = 1, b = 2, c = 3') is 'var a = 1, b = 2, c = 3' +PASS compileAndSerializeLeftmostTest('const a = 1') is 'const a = 1' +PASS compileAndSerializeLeftmostTest('const a = (1, 2)') is 'const a = (1, 2)' +PASS compileAndSerializeLeftmostTest('const a, b = 1') is 'const a, b = 1' +PASS compileAndSerializeLeftmostTest('const a = 1, b') is 'const a = 1, b' +PASS compileAndSerializeLeftmostTest('const a = 1, b = 1') is 'const a = 1, b = 1' +PASS compileAndSerializeLeftmostTest('const a = (1, 2), b = 1') is 'const a = (1, 2), b = 1' +PASS compileAndSerializeLeftmostTest('const a = 1, b = (1, 2)') is 'const a = 1, b = (1, 2)' +PASS compileAndSerializeLeftmostTest('const a = (1, 2), b = (1, 2)') is 'const a = (1, 2), b = (1, 2)' +PASS compileAndSerialize('(function () { new (a.b()).c })') is '(function () { new (a.b()).c })' +PASS successfullyParsed is true + +TEST COMPLETE + diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/invalid-syntax-for-function-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/invalid-syntax-for-function-expected.txt new file mode 100644 index 0000000..73c4816 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/invalid-syntax-for-function-expected.txt @@ -0,0 +1,3 @@ +CONSOLE MESSAGE: line 1: Uncaught SyntaxError: Unexpected token ILLEGAL +This test ensures we don't crash when we are given garbage for an attribute expecting a function. +https://bugs.webkit.org/show_bug.cgi?id=19025 diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/Number-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/Number-expected.txt new file mode 100644 index 0000000..4abc74a --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/Number-expected.txt @@ -0,0 +1,462 @@ +KDE JS Test + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS Number() is 0 +PASS Number(1) is 1 +PASS Number(1.1) is 1.1 +PASS Number('1.2') is 1.2 +PASS isNaN(Number('a')) is true +PASS (new Number()).valueOf() is 0 +PASS (new Number(.4)).valueOf() is 0.4 +PASS (new Number('1.')).valueOf() is 1 +PASS isNaN(new Number('a')) is true +PASS isNaN(Number.NaN) is true +PASS Number.NEGATIVE_INFINITY is -Infinity +PASS Number.POSITIVE_INFINITY is Infinity +PASS (1).toString() is '1' +PASS typeof (1).toString() is 'string' +PASS (10).toString(16) is 'a' +PASS (8.5).toString(16) is '8.8' +PASS (-8.5).toString(16) is '-8.8' +PASS Number.NaN.toString(16) is 'NaN' +PASS Number.POSITIVE_INFINITY.toString(16) is 'Infinity' +PASS Number.NEGATIVE_INFINITY.toString(16) is '-Infinity' +PASS Number.MAX_VALUE.toString(2).length is 1024 +PASS (1).valueOf() is 1 +PASS typeof (1).valueOf() is 'number' +PASS Number(1234.567).toFixed(0) is "1235" +PASS Number(1234.567).toFixed(undefined) is "1235" +PASS Number(-1234.567).toFixed(0) is "-1235" +PASS Number(-1234.567).toFixed(undefined) is "-1235" +PASS Number(0).toFixed(7) is "0.0000000" +PASS Number(0.003).toFixed(0) is "0" +PASS Number(-0.003).toFixed(0) is "-0" +PASS Number(40.1234567890123).toFixed(7) is "40.1234568" +PASS Number(-40.1234567890123).toFixed(7) is "-40.1234568" +PASS Number(4).toFixed(7) is "4.0000000" +PASS Number(-4).toFixed(7) is "-4.0000000" +PASS Number(0.000056).toFixed(7) is "0.0000560" +PASS Number(-0.000056).toFixed(7) is "-0.0000560" +PASS Number(NaN).toFixed(7) is "NaN" +PASS Number(Infinity).toFixed(7) is "Infinity" +PASS Number(-Infinity).toFixed(7) is "-Infinity" +PASS Number(Math.pow(10,4)).toFixed(13) is "10000.0000000000000" +PASS Number(Math.pow(10,17)).toFixed(16) is "100000000000000000.0000000000000000" +PASS Number(Math.pow(10,18)).toFixed(17) is "1000000000000000000.00000000000000000" +PASS Number(Math.pow(10,19)).toFixed(18) is "10000000000000000000.000000000000000000" +PASS Number(Math.pow(10,17)).toFixed(20) is "100000000000000000.00000000000000000000" +PASS Number(Math.pow(10,18)).toFixed(20) is "1000000000000000000.00000000000000000000" +PASS Number(Math.pow(10,19)).toFixed(20) is "10000000000000000000.00000000000000000000" +PASS Number(Math.pow(10,20)).toFixed(20) is "100000000000000000000.00000000000000000000" +PASS Number(Math.pow(10,21)).toFixed(20) is "1e+21" +PASS Number(-Math.pow(10,4)).toFixed(13) is "-10000.0000000000000" +PASS Number(-Math.pow(10,17)).toFixed(16) is "-100000000000000000.0000000000000000" +PASS Number(-Math.pow(10,18)).toFixed(17) is "-1000000000000000000.00000000000000000" +PASS Number(-Math.pow(10,19)).toFixed(18) is "-10000000000000000000.000000000000000000" +PASS Number(-Math.pow(10,17)).toFixed(20) is "-100000000000000000.00000000000000000000" +PASS Number(-Math.pow(10,18)).toFixed(20) is "-1000000000000000000.00000000000000000000" +PASS Number(-Math.pow(10,19)).toFixed(20) is "-10000000000000000000.00000000000000000000" +PASS Number(-Math.pow(10,20)).toFixed(20) is "-100000000000000000000.00000000000000000000" +PASS Number(-Math.pow(10,21)).toFixed(20) is "-1e+21" +PASS toFixedOrException(2,-1).indexOf('Range') >= 0 is true +PASS Number(2).toFixed(0) is "2" +PASS Number(2).toFixed(20) is "2.00000000000000000000" +PASS toFixedOrException(2,21).indexOf('Range') >= 0 is true +PASS toFixedOrException(-2,-1).indexOf('Range') >= 0 is true +PASS Number(-2).toFixed(0) is "-2" +PASS Number(-2).toFixed(20) is "-2.00000000000000000000" +PASS toFixedOrException(-2,21).indexOf('Range') >= 0 is true +PASS Number(NaN).toExponential() is "NaN" +PASS Number(Infinity).toExponential() is "Infinity" +PASS Number(-Infinity).toExponential() is "-Infinity" +PASS Number(NaN).toExponential(4) is "NaN" +PASS Number(Infinity).toExponential(4) is "Infinity" +PASS Number(-Infinity).toExponential(4) is "-Infinity" +PASS Number(123.456).toExponential() is "1.23456e+2" +PASS try { Number(123.456).toExponential(-1) } catch (e) { String(e).indexOf('Range') >= 0; } is true +PASS Number(123.456).toExponential(0) is "1e+2" +PASS Number(123.456).toExponential(1) is "1.2e+2" +PASS Number(123.456).toExponential(2) is "1.23e+2" +PASS Number(123.456).toExponential(3) is "1.235e+2" +PASS Number(123.456).toExponential(4) is "1.2346e+2" +PASS Number(123.456).toExponential(5) is "1.23456e+2" +PASS Number(123.456).toExponential(6) is "1.234560e+2" +PASS Number(123.456).toExponential(7) is "1.2345600e+2" +PASS Number(123.456).toExponential(8) is "1.23456000e+2" +PASS Number(123.456).toExponential(9) is "1.234560000e+2" +PASS Number(123.456).toExponential(10) is "1.2345600000e+2" +PASS Number(123.456).toExponential(11) is "1.23456000000e+2" +PASS Number(123.456).toExponential(12) is "1.234560000000e+2" +PASS Number(123.456).toExponential(13) is "1.2345600000000e+2" +PASS Number(123.456).toExponential(14) is "1.23456000000000e+2" +PASS Number(123.456).toExponential(15) is "1.234560000000000e+2" +PASS Number(123.456).toExponential(16) is "1.2345600000000000e+2" +FAIL Number(123.456).toExponential(17) should be 1.23456000000000000e+2. Was 1.23456000000000003e+2. +FAIL Number(123.456).toExponential(18) should be 1.234560000000000000e+2. Was 1.234560000000000031e+2. +FAIL Number(123.456).toExponential(19) should be 1.2345600000000000000e+2. Was 1.2345600000000000307e+2. +FAIL Number(123.456).toExponential(20) should be 1.23456000000000000000e+2. Was 1.23456000000000003070e+2. +PASS try { Number(123.456).toExponential(21) } catch (e) { String(e).indexOf('Range') >= 0; } is true +PASS Number(-123.456).toExponential() is "-1.23456e+2" +PASS try { Number(-123.456).toExponential(-1) } catch (e) { String(e).indexOf('Range') >= 0; } is true +PASS Number(-123.456).toExponential(0) is "-1e+2" +PASS Number(-123.456).toExponential(1) is "-1.2e+2" +PASS Number(-123.456).toExponential(2) is "-1.23e+2" +PASS Number(-123.456).toExponential(3) is "-1.235e+2" +PASS Number(-123.456).toExponential(4) is "-1.2346e+2" +PASS Number(-123.456).toExponential(5) is "-1.23456e+2" +PASS Number(-123.456).toExponential(6) is "-1.234560e+2" +PASS Number(-123.456).toExponential(7) is "-1.2345600e+2" +PASS Number(-123.456).toExponential(8) is "-1.23456000e+2" +PASS Number(-123.456).toExponential(9) is "-1.234560000e+2" +PASS Number(-123.456).toExponential(10) is "-1.2345600000e+2" +PASS Number(-123.456).toExponential(11) is "-1.23456000000e+2" +PASS Number(-123.456).toExponential(12) is "-1.234560000000e+2" +PASS Number(-123.456).toExponential(13) is "-1.2345600000000e+2" +PASS Number(-123.456).toExponential(14) is "-1.23456000000000e+2" +PASS Number(-123.456).toExponential(15) is "-1.234560000000000e+2" +PASS Number(-123.456).toExponential(16) is "-1.2345600000000000e+2" +FAIL Number(-123.456).toExponential(17) should be -1.23456000000000000e+2. Was -1.23456000000000003e+2. +FAIL Number(-123.456).toExponential(18) should be -1.234560000000000000e+2. Was -1.234560000000000031e+2. +FAIL Number(-123.456).toExponential(19) should be -1.2345600000000000000e+2. Was -1.2345600000000000307e+2. +FAIL Number(-123.456).toExponential(20) should be -1.23456000000000000000e+2. Was -1.23456000000000003070e+2. +PASS try { Number(-123.456).toExponential(21) } catch (e) { String(e).indexOf('Range') >= 0; } is true +PASS Number(.000123456).toExponential() is "1.23456e-4" +PASS try { Number(.000123456).toExponential(-1) } catch (e) { String(e).indexOf('Range') >= 0; } is true +PASS Number(.000123456).toExponential(0) is "1e-4" +PASS Number(.000123456).toExponential(1) is "1.2e-4" +PASS Number(.000123456).toExponential(2) is "1.23e-4" +PASS Number(.000123456).toExponential(3) is "1.235e-4" +PASS Number(.000123456).toExponential(4) is "1.2346e-4" +PASS Number(.000123456).toExponential(5) is "1.23456e-4" +PASS Number(.000123456).toExponential(6) is "1.234560e-4" +PASS Number(.000123456).toExponential(7) is "1.2345600e-4" +PASS Number(.000123456).toExponential(8) is "1.23456000e-4" +PASS Number(.000123456).toExponential(9) is "1.234560000e-4" +PASS Number(.000123456).toExponential(10) is "1.2345600000e-4" +PASS Number(.000123456).toExponential(11) is "1.23456000000e-4" +PASS Number(.000123456).toExponential(12) is "1.234560000000e-4" +PASS Number(.000123456).toExponential(13) is "1.2345600000000e-4" +PASS Number(.000123456).toExponential(14) is "1.23456000000000e-4" +PASS Number(.000123456).toExponential(15) is "1.234560000000000e-4" +FAIL Number(.000123456).toExponential(16) should be 1.2345600000000000e-4. Was 1.2345600000000001e-4. +FAIL Number(.000123456).toExponential(17) should be 1.23456000000000000e-4. Was 1.23456000000000005e-4. +FAIL Number(.000123456).toExponential(18) should be 1.234560000000000000e-4. Was 1.234560000000000052e-4. +FAIL Number(.000123456).toExponential(19) should be 1.2345600000000000000e-4. Was 1.2345600000000000519e-4. +FAIL Number(.000123456).toExponential(20) should be 1.23456000000000000000e-4. Was 1.23456000000000005188e-4. +PASS try { Number(.000123456).toExponential(21) } catch (e) { String(e).indexOf('Range') >= 0; } is true +PASS Number(-.000123456).toExponential() is "-1.23456e-4" +PASS try { Number(-.000123456).toExponential(-1) } catch (e) { String(e).indexOf('Range') >= 0; } is true +PASS Number(-.000123456).toExponential(0) is "-1e-4" +PASS Number(-.000123456).toExponential(1) is "-1.2e-4" +PASS Number(-.000123456).toExponential(2) is "-1.23e-4" +PASS Number(-.000123456).toExponential(3) is "-1.235e-4" +PASS Number(-.000123456).toExponential(4) is "-1.2346e-4" +PASS Number(-.000123456).toExponential(5) is "-1.23456e-4" +PASS Number(-.000123456).toExponential(6) is "-1.234560e-4" +PASS Number(-.000123456).toExponential(7) is "-1.2345600e-4" +PASS Number(-.000123456).toExponential(8) is "-1.23456000e-4" +PASS Number(-.000123456).toExponential(9) is "-1.234560000e-4" +PASS Number(-.000123456).toExponential(10) is "-1.2345600000e-4" +PASS Number(-.000123456).toExponential(11) is "-1.23456000000e-4" +PASS Number(-.000123456).toExponential(12) is "-1.234560000000e-4" +PASS Number(-.000123456).toExponential(13) is "-1.2345600000000e-4" +PASS Number(-.000123456).toExponential(14) is "-1.23456000000000e-4" +PASS Number(-.000123456).toExponential(15) is "-1.234560000000000e-4" +FAIL Number(-.000123456).toExponential(16) should be -1.2345600000000000e-4. Was -1.2345600000000001e-4. +FAIL Number(-.000123456).toExponential(17) should be -1.23456000000000000e-4. Was -1.23456000000000005e-4. +FAIL Number(-.000123456).toExponential(18) should be -1.234560000000000000e-4. Was -1.234560000000000052e-4. +FAIL Number(-.000123456).toExponential(19) should be -1.2345600000000000000e-4. Was -1.2345600000000000519e-4. +FAIL Number(-.000123456).toExponential(20) should be -1.23456000000000000000e-4. Was -1.23456000000000005188e-4. +PASS try { Number(-.000123456).toExponential(21) } catch (e) { String(e).indexOf('Range') >= 0; } is true +PASS Number(123.4567890123456789012).toExponential() is "1.2345678901234568e+2" +PASS try { Number(123.4567890123456789012).toExponential(-1) } catch (e) { String(e).indexOf('Range') >= 0; } is true +PASS Number(123.4567890123456789012).toExponential(0) is "1e+2" +PASS Number(123.4567890123456789012).toExponential(1) is "1.2e+2" +PASS Number(123.4567890123456789012).toExponential(2) is "1.23e+2" +PASS Number(123.4567890123456789012).toExponential(3) is "1.235e+2" +PASS Number(123.4567890123456789012).toExponential(4) is "1.2346e+2" +PASS Number(123.4567890123456789012).toExponential(5) is "1.23457e+2" +PASS Number(123.4567890123456789012).toExponential(6) is "1.234568e+2" +PASS Number(123.4567890123456789012).toExponential(7) is "1.2345679e+2" +PASS Number(123.4567890123456789012).toExponential(8) is "1.23456789e+2" +PASS Number(123.4567890123456789012).toExponential(9) is "1.234567890e+2" +PASS Number(123.4567890123456789012).toExponential(10) is "1.2345678901e+2" +PASS Number(123.4567890123456789012).toExponential(11) is "1.23456789012e+2" +PASS Number(123.4567890123456789012).toExponential(12) is "1.234567890123e+2" +PASS Number(123.4567890123456789012).toExponential(13) is "1.2345678901235e+2" +PASS Number(123.4567890123456789012).toExponential(14) is "1.23456789012346e+2" +PASS Number(123.4567890123456789012).toExponential(15) is "1.234567890123457e+2" +FAIL Number(123.4567890123456789012).toExponential(16) should be 1.2345678901234570e+2. Was 1.2345678901234568e+2. +FAIL Number(123.4567890123456789012).toExponential(17) should be 1.23456789012345700e+2. Was 1.23456789012345681e+2. +FAIL Number(123.4567890123456789012).toExponential(18) should be 1.234567890123457100e+2. Was 1.234567890123456806e+2. +FAIL Number(123.4567890123456789012).toExponential(19) should be 1.2345678901234570000e+2. Was 1.2345678901234568059e+2. +FAIL Number(123.4567890123456789012).toExponential(20) should be 1.23456789012345700000e+2. Was 1.23456789012345680590e+2. +PASS try { Number(123.4567890123456789012).toExponential(21) } catch (e) { String(e).indexOf('Range') >= 0; } is true +PASS Number(-123.4567890123456789012).toExponential() is "-1.2345678901234568e+2" +PASS try { Number(-123.4567890123456789012).toExponential(-1) } catch (e) { String(e).indexOf('Range') >= 0; } is true +PASS Number(-123.4567890123456789012).toExponential(0) is "-1e+2" +PASS Number(-123.4567890123456789012).toExponential(1) is "-1.2e+2" +PASS Number(-123.4567890123456789012).toExponential(2) is "-1.23e+2" +PASS Number(-123.4567890123456789012).toExponential(3) is "-1.235e+2" +PASS Number(-123.4567890123456789012).toExponential(4) is "-1.2346e+2" +PASS Number(-123.4567890123456789012).toExponential(5) is "-1.23457e+2" +PASS Number(-123.4567890123456789012).toExponential(6) is "-1.234568e+2" +PASS Number(-123.4567890123456789012).toExponential(7) is "-1.2345679e+2" +PASS Number(-123.4567890123456789012).toExponential(8) is "-1.23456789e+2" +PASS Number(-123.4567890123456789012).toExponential(9) is "-1.234567890e+2" +PASS Number(-123.4567890123456789012).toExponential(10) is "-1.2345678901e+2" +PASS Number(-123.4567890123456789012).toExponential(11) is "-1.23456789012e+2" +PASS Number(-123.4567890123456789012).toExponential(12) is "-1.234567890123e+2" +PASS Number(-123.4567890123456789012).toExponential(13) is "-1.2345678901235e+2" +PASS Number(-123.4567890123456789012).toExponential(14) is "-1.23456789012346e+2" +PASS Number(-123.4567890123456789012).toExponential(15) is "-1.234567890123457e+2" +FAIL Number(-123.4567890123456789012).toExponential(16) should be -1.2345678901234570e+2. Was -1.2345678901234568e+2. +FAIL Number(-123.4567890123456789012).toExponential(17) should be -1.23456789012345700e+2. Was -1.23456789012345681e+2. +FAIL Number(-123.4567890123456789012).toExponential(18) should be -1.234567890123457100e+2. Was -1.234567890123456806e+2. +FAIL Number(-123.4567890123456789012).toExponential(19) should be -1.2345678901234570000e+2. Was -1.2345678901234568059e+2. +FAIL Number(-123.4567890123456789012).toExponential(20) should be -1.23456789012345700000e+2. Was -1.23456789012345680590e+2. +PASS try { Number(-123.4567890123456789012).toExponential(21) } catch (e) { String(e).indexOf('Range') >= 0; } is true +PASS Number(.0000000000000000000001).toExponential() is "1e-22" +PASS Number(.0000000000000000000012).toExponential() is "1.2e-21" +PASS Number(.0000000000000000000123).toExponential() is "1.23e-20" +PASS Number(.0000000000000000000123).toExponential() is "1.23e-20" +PASS Number(.0000000000000000001234).toExponential() is "1.234e-19" +PASS Number(.0000000000000000012345).toExponential() is "1.2345e-18" +PASS Number(.0000000000000000123456).toExponential() is "1.23456e-17" +PASS Number(.0000000000000001234567).toExponential() is "1.234567e-16" +PASS Number(.0000000000000012345678).toExponential() is "1.2345678e-15" +PASS Number(.0000000000000123456789).toExponential() is "1.23456789e-14" +PASS Number(.0000000000001234567890).toExponential() is "1.23456789e-13" +PASS Number(.0000000000012345678901).toExponential() is "1.2345678901e-12" +PASS Number(.0000000000123456789012).toExponential() is "1.23456789012e-11" +PASS Number(.0000000001234567890123).toExponential() is "1.234567890123e-10" +PASS Number(.0000000012345678901234).toExponential() is "1.2345678901234e-9" +PASS Number(.0000000123456789012345).toExponential() is "1.23456789012345e-8" +PASS Number(.0000001234567890123456).toExponential() is "1.234567890123456e-7" +PASS Number(.0000012345678901234567).toExponential() is "1.2345678901234567e-6" +PASS Number(.0000123456789012345678).toExponential() is "1.2345678901234568e-5" +PASS Number(.0001234567890123456789).toExponential() is "1.2345678901234567e-4" +PASS Number(.0012345678901234567890).toExponential() is "1.2345678901234567e-3" +PASS Number(.0123456789012345678901).toExponential() is "1.2345678901234568e-2" +PASS Number(1.234567890123456789012).toExponential() is "1.2345678901234567e+0" +PASS Number(12.34567890123456789012).toExponential() is "1.2345678901234567e+1" +PASS Number(123.4567890123456789012).toExponential() is "1.2345678901234568e+2" +PASS Number(1234.567890123456789012).toExponential() is "1.234567890123457e+3" +PASS Number(12345.67890123456789012).toExponential() is "1.2345678901234567e+4" +PASS Number(123456.7890123456789012).toExponential() is "1.2345678901234567e+5" +PASS Number(1234567.890123456789012).toExponential() is "1.2345678901234567e+6" +PASS Number(12345678.90123456789012).toExponential() is "1.2345678901234567e+7" +PASS Number(123456789.0123456789012).toExponential() is "1.2345678901234567e+8" +PASS Number(1234567890.123456789012).toExponential() is "1.2345678901234567e+9" +PASS Number(12345678901.23456789012).toExponential() is "1.2345678901234568e+10" +PASS Number(123456789012.3456789012).toExponential() is "1.2345678901234567e+11" +PASS Number(1234567890123.456789012).toExponential() is "1.2345678901234568e+12" +PASS Number(12345678901234.56789012).toExponential() is "1.2345678901234568e+13" +PASS Number(123456789012345.6789012).toExponential() is "1.2345678901234567e+14" +PASS Number(1234567890123456.789012).toExponential() is "1.2345678901234568e+15" +PASS Number(12345678901234567.89012).toExponential() is "1.2345678901234568e+16" +PASS Number(123456789012345678.9012).toExponential() is "1.2345678901234568e+17" +PASS Number(1234567890123456789.012).toExponential() is "1.2345678901234568e+18" +PASS Number(12345678901234567890.12).toExponential() is "1.2345678901234567e+19" +PASS Number(123456789012345678901.2).toExponential() is "1.2345678901234568e+20" +PASS Number(-.0000000000000000000001).toExponential() is "-1e-22" +PASS Number(-.0000000000000000000012).toExponential() is "-1.2e-21" +PASS Number(-.0000000000000000000123).toExponential() is "-1.23e-20" +PASS Number(-.0000000000000000000123).toExponential() is "-1.23e-20" +PASS Number(-.0000000000000000001234).toExponential() is "-1.234e-19" +PASS Number(-.0000000000000000012345).toExponential() is "-1.2345e-18" +PASS Number(-.0000000000000000123456).toExponential() is "-1.23456e-17" +PASS Number(-.0000000000000001234567).toExponential() is "-1.234567e-16" +PASS Number(-.0000000000000012345678).toExponential() is "-1.2345678e-15" +PASS Number(-.0000000000000123456789).toExponential() is "-1.23456789e-14" +PASS Number(-.0000000000001234567890).toExponential() is "-1.23456789e-13" +PASS Number(-.0000000000012345678901).toExponential() is "-1.2345678901e-12" +PASS Number(-.0000000000123456789012).toExponential() is "-1.23456789012e-11" +PASS Number(-.0000000001234567890123).toExponential() is "-1.234567890123e-10" +PASS Number(-.0000000012345678901234).toExponential() is "-1.2345678901234e-9" +PASS Number(-.0000000123456789012345).toExponential() is "-1.23456789012345e-8" +PASS Number(-.0000001234567890123456).toExponential() is "-1.234567890123456e-7" +PASS Number(-.0000012345678901234567).toExponential() is "-1.2345678901234567e-6" +PASS Number(-.0000123456789012345678).toExponential() is "-1.2345678901234568e-5" +PASS Number(-.0001234567890123456789).toExponential() is "-1.2345678901234567e-4" +PASS Number(-.0012345678901234567890).toExponential() is "-1.2345678901234567e-3" +PASS Number(-.0123456789012345678901).toExponential() is "-1.2345678901234568e-2" +PASS Number(-1.234567890123456789012).toExponential() is "-1.2345678901234567e+0" +PASS Number(-12.34567890123456789012).toExponential() is "-1.2345678901234567e+1" +PASS Number(-123.4567890123456789012).toExponential() is "-1.2345678901234568e+2" +PASS Number(-1234.567890123456789012).toExponential() is "-1.234567890123457e+3" +PASS Number(-12345.67890123456789012).toExponential() is "-1.2345678901234567e+4" +PASS Number(-123456.7890123456789012).toExponential() is "-1.2345678901234567e+5" +PASS Number(-1234567.890123456789012).toExponential() is "-1.2345678901234567e+6" +PASS Number(-12345678.90123456789012).toExponential() is "-1.2345678901234567e+7" +PASS Number(-123456789.0123456789012).toExponential() is "-1.2345678901234567e+8" +PASS Number(-1234567890.123456789012).toExponential() is "-1.2345678901234567e+9" +PASS Number(-12345678901.23456789012).toExponential() is "-1.2345678901234568e+10" +PASS Number(-123456789012.3456789012).toExponential() is "-1.2345678901234567e+11" +PASS Number(-1234567890123.456789012).toExponential() is "-1.2345678901234568e+12" +PASS Number(-12345678901234.56789012).toExponential() is "-1.2345678901234568e+13" +PASS Number(-123456789012345.6789012).toExponential() is "-1.2345678901234567e+14" +PASS Number(-1234567890123456.789012).toExponential() is "-1.2345678901234568e+15" +PASS Number(-12345678901234567.89012).toExponential() is "-1.2345678901234568e+16" +PASS Number(-123456789012345678.9012).toExponential() is "-1.2345678901234568e+17" +PASS Number(-1234567890123456789.012).toExponential() is "-1.2345678901234568e+18" +PASS Number(-12345678901234567890.12).toExponential() is "-1.2345678901234567e+19" +PASS Number(-123456789012345678901.2).toExponential() is "-1.2345678901234568e+20" +PASS try { Number(1).toPrecision(-1); } catch (e) { String(e).indexOf('Range') >= 0; } is true +PASS try { Number(1).toPrecision(0); } catch (e) { String(e).indexOf('Range') >= 0; } is true +PASS try { Number(1).toPrecision(1); } catch (e) { String(e); } is "1" +PASS try { Number(1).toPrecision(21); } catch (e) { String(e); } is "1.00000000000000000000" +PASS try { Number(1).toPrecision(22); } catch (e) { String(e).indexOf('Range') >= 0; } is true +PASS Number(NaN).toPrecision() is "NaN" +PASS Number(NaN).toPrecision(1) is "NaN" +PASS Number(Infinity).toPrecision() is "Infinity" +PASS Number(Infinity).toPrecision(1) is "Infinity" +PASS Number(-Infinity).toPrecision() is "-Infinity" +PASS Number(-Infinity).toPrecision(1) is "-Infinity" +PASS Number(.0000000012345).toPrecision(2) is "1.2e-9" +PASS Number(.000000012345).toPrecision(2) is "1.2e-8" +PASS Number(.00000012345).toPrecision(2) is "1.2e-7" +PASS Number(.0000012345).toPrecision(2) is "0.0000012" +PASS Number(.000012345).toPrecision(2) is "0.000012" +PASS Number(.00012345).toPrecision(2) is "0.00012" +PASS Number(.0012345).toPrecision(2) is "0.0012" +PASS Number(.012345).toPrecision(2) is "0.012" +PASS Number(.12345).toPrecision(2) is "0.12" +PASS Number(1.2345).toPrecision(2) is "1.2" +PASS Number(12.345).toPrecision(2) is "12" +PASS Number(123.45).toPrecision(2) is "1.2e+2" +PASS Number(1234.5).toPrecision(2) is "1.2e+3" +PASS Number(12345).toPrecision(2) is "1.2e+4" +PASS Number(12345.67).toPrecision(4) is "1.235e+4" +PASS Number(12344.67).toPrecision(4) is "1.234e+4" +PASS Number(0.0001234567890123456789012345).toPrecision() is "0.00012345678901234567" +PASS Number(0.0001234567890123456789012345).toPrecision(1) is "0.0001" +PASS Number(0.0001234567890123456789012345).toPrecision(2) is "0.00012" +PASS Number(0.0001234567890123456789012345).toPrecision(3) is "0.000123" +PASS Number(0.0001234567890123456789012345).toPrecision(4) is "0.0001235" +PASS Number(0.0001234567890123456789012345).toPrecision(5) is "0.00012346" +PASS Number(0.0001234567890123456789012345).toPrecision(6) is "0.000123457" +PASS Number(0.0001234567890123456789012345).toPrecision(7) is "0.0001234568" +PASS Number(0.0001234567890123456789012345).toPrecision(8) is "0.00012345679" +PASS Number(0.0001234567890123456789012345).toPrecision(9) is "0.000123456789" +PASS Number(0.0001234567890123456789012345).toPrecision(10) is "0.0001234567890" +PASS Number(0.0001234567890123456789012345).toPrecision(11) is "0.00012345678901" +PASS Number(0.0001234567890123456789012345).toPrecision(12) is "0.000123456789012" +PASS Number(0.0001234567890123456789012345).toPrecision(13) is "0.0001234567890123" +PASS Number(0.0001234567890123456789012345).toPrecision(14) is "0.00012345678901235" +PASS Number(0.0001234567890123456789012345).toPrecision(15) is "0.000123456789012346" +PASS Number(0.0001234567890123456789012345).toPrecision(16) is "0.0001234567890123457" +FAIL Number(0.0001234567890123456789012345).toPrecision(17) should be 0.00012345678901234568. Was 0.00012345678901234567. +FAIL Number(0.0001234567890123456789012345).toPrecision(18) should be 0.000123456789012345680. Was 0.000123456789012345671. +FAIL Number(0.0001234567890123456789012345).toPrecision(19) should be 0.0001234567890123456800. Was 0.0001234567890123456713. +FAIL Number(0.0001234567890123456789012345).toPrecision(20) should be 0.00012345678901234567000. Was 0.00012345678901234567130. +FAIL Number(0.0001234567890123456789012345).toPrecision(21) should be 0.000123456789012345680000. Was 0.000123456789012345671298. +PASS Number(12345.67890123456789012345).toPrecision() is "12345.678901234567" +PASS Number(12345.67890123456789012345).toPrecision(1) is "1e+4" +PASS Number(12345.67890123456789012345).toPrecision(2) is "1.2e+4" +PASS Number(12345.67890123456789012345).toPrecision(3) is "1.23e+4" +PASS Number(12345.67890123456789012345).toPrecision(4) is "1.235e+4" +PASS Number(12345.67890123456789012345).toPrecision(5) is "12346" +PASS Number(12345.67890123456789012345).toPrecision(6) is "12345.7" +PASS Number(12345.67890123456789012345).toPrecision(7) is "12345.68" +PASS Number(12345.67890123456789012345).toPrecision(8) is "12345.679" +PASS Number(12345.67890123456789012345).toPrecision(9) is "12345.6789" +PASS Number(12345.67890123456789012345).toPrecision(10) is "12345.67890" +PASS Number(12345.67890123456789012345).toPrecision(11) is "12345.678901" +PASS Number(12345.67890123456789012345).toPrecision(12) is "12345.6789012" +PASS Number(12345.67890123456789012345).toPrecision(13) is "12345.67890123" +PASS Number(12345.67890123456789012345).toPrecision(14) is "12345.678901235" +PASS Number(12345.67890123456789012345).toPrecision(15) is "12345.6789012346" +PASS Number(12345.67890123456789012345).toPrecision(16) is "12345.67890123457" +FAIL Number(12345.67890123456789012345).toPrecision(17) should be 12345.678901234568. Was 12345.678901234567. +FAIL Number(12345.67890123456789012345).toPrecision(18) should be 12345.6789012345660. Was 12345.6789012345671. +FAIL Number(12345.67890123456789012345).toPrecision(19) should be 12345.67890123456800. Was 12345.67890123456709. +FAIL Number(12345.67890123456789012345).toPrecision(20) should be 12345.678901234565000. Was 12345.678901234567093. +FAIL Number(12345.67890123456789012345).toPrecision(21) should be 12345.6789012345670000. Was 12345.6789012345670926. +PASS Number(-.0000000012345).toPrecision(2) is "-1.2e-9" +PASS Number(-.000000012345).toPrecision(2) is "-1.2e-8" +PASS Number(-.00000012345).toPrecision(2) is "-1.2e-7" +PASS Number(-.0000012345).toPrecision(2) is "-0.0000012" +PASS Number(-.000012345).toPrecision(2) is "-0.000012" +PASS Number(-.00012345).toPrecision(2) is "-0.00012" +PASS Number(-.0012345).toPrecision(2) is "-0.0012" +PASS Number(-.012345).toPrecision(2) is "-0.012" +PASS Number(-.12345).toPrecision(2) is "-0.12" +PASS Number(-1.2345).toPrecision(2) is "-1.2" +PASS Number(-12.345).toPrecision(2) is "-12" +PASS Number(-123.45).toPrecision(2) is "-1.2e+2" +PASS Number(-1234.5).toPrecision(2) is "-1.2e+3" +PASS Number(-12345).toPrecision(2) is "-1.2e+4" +PASS Number(-12345.67).toPrecision(4) is "-1.235e+4" +PASS Number(-12344.67).toPrecision(4) is "-1.234e+4" +PASS Number(-0.0001234567890123456789012345).toPrecision() is "-0.00012345678901234567" +PASS Number(-0.0001234567890123456789012345).toPrecision(1) is "-0.0001" +PASS Number(-0.0001234567890123456789012345).toPrecision(2) is "-0.00012" +PASS Number(-0.0001234567890123456789012345).toPrecision(3) is "-0.000123" +PASS Number(-0.0001234567890123456789012345).toPrecision(4) is "-0.0001235" +PASS Number(-0.0001234567890123456789012345).toPrecision(5) is "-0.00012346" +PASS Number(-0.0001234567890123456789012345).toPrecision(6) is "-0.000123457" +PASS Number(-0.0001234567890123456789012345).toPrecision(7) is "-0.0001234568" +PASS Number(-0.0001234567890123456789012345).toPrecision(8) is "-0.00012345679" +PASS Number(-0.0001234567890123456789012345).toPrecision(9) is "-0.000123456789" +PASS Number(-0.0001234567890123456789012345).toPrecision(10) is "-0.0001234567890" +PASS Number(-0.0001234567890123456789012345).toPrecision(11) is "-0.00012345678901" +PASS Number(-0.0001234567890123456789012345).toPrecision(12) is "-0.000123456789012" +PASS Number(-0.0001234567890123456789012345).toPrecision(13) is "-0.0001234567890123" +PASS Number(-0.0001234567890123456789012345).toPrecision(14) is "-0.00012345678901235" +PASS Number(-0.0001234567890123456789012345).toPrecision(15) is "-0.000123456789012346" +PASS Number(-0.0001234567890123456789012345).toPrecision(16) is "-0.0001234567890123457" +FAIL Number(-0.0001234567890123456789012345).toPrecision(17) should be -0.00012345678901234568. Was -0.00012345678901234567. +FAIL Number(-0.0001234567890123456789012345).toPrecision(18) should be -0.000123456789012345680. Was -0.000123456789012345671. +FAIL Number(-0.0001234567890123456789012345).toPrecision(19) should be -0.0001234567890123456800. Was -0.0001234567890123456713. +FAIL Number(-0.0001234567890123456789012345).toPrecision(20) should be -0.00012345678901234567000. Was -0.00012345678901234567130. +FAIL Number(-0.0001234567890123456789012345).toPrecision(21) should be -0.000123456789012345680000. Was -0.000123456789012345671298. +PASS Number(-12345.67890123456789012345).toPrecision() is "-12345.678901234567" +PASS Number(-12345.67890123456789012345).toPrecision(1) is "-1e+4" +PASS Number(-12345.67890123456789012345).toPrecision(2) is "-1.2e+4" +PASS Number(-12345.67890123456789012345).toPrecision(3) is "-1.23e+4" +PASS Number(-12345.67890123456789012345).toPrecision(4) is "-1.235e+4" +PASS Number(-12345.67890123456789012345).toPrecision(5) is "-12346" +PASS Number(-12345.67890123456789012345).toPrecision(6) is "-12345.7" +PASS Number(-12345.67890123456789012345).toPrecision(7) is "-12345.68" +PASS Number(-12345.67890123456789012345).toPrecision(8) is "-12345.679" +PASS Number(-12345.67890123456789012345).toPrecision(9) is "-12345.6789" +PASS Number(-12345.67890123456789012345).toPrecision(10) is "-12345.67890" +PASS Number(-12345.67890123456789012345).toPrecision(11) is "-12345.678901" +PASS Number(-12345.67890123456789012345).toPrecision(12) is "-12345.6789012" +PASS Number(-12345.67890123456789012345).toPrecision(13) is "-12345.67890123" +PASS Number(-12345.67890123456789012345).toPrecision(14) is "-12345.678901235" +PASS Number(-12345.67890123456789012345).toPrecision(15) is "-12345.6789012346" +PASS Number(-12345.67890123456789012345).toPrecision(16) is "-12345.67890123457" +FAIL Number(-12345.67890123456789012345).toPrecision(17) should be -12345.678901234568. Was -12345.678901234567. +FAIL Number(-12345.67890123456789012345).toPrecision(18) should be -12345.6789012345660. Was -12345.6789012345671. +FAIL Number(-12345.67890123456789012345).toPrecision(19) should be -12345.67890123456800. Was -12345.67890123456709. +FAIL Number(-12345.67890123456789012345).toPrecision(20) should be -12345.678901234565000. Was -12345.678901234567093. +FAIL Number(-12345.67890123456789012345).toPrecision(21) should be -12345.6789012345670000. Was -12345.6789012345670926. +PASS Number(0).toPrecision() is "0" +PASS Number(0).toPrecision(1) is "0" +PASS Number(0).toPrecision(2) is "0.0" +PASS Number(0).toPrecision(3) is "0.00" +PASS Number(0).toPrecision(4) is "0.000" +PASS Number(0).toPrecision(5) is "0.0000" +PASS Number(0).toPrecision(6) is "0.00000" +PASS Number(0).toPrecision(7) is "0.000000" +PASS Number(0).toPrecision(8) is "0.0000000" +PASS Number(0).toPrecision(9) is "0.00000000" +PASS Number(0).toPrecision(10) is "0.000000000" +PASS Number(0).toPrecision(11) is "0.0000000000" +PASS Number(0).toPrecision(12) is "0.00000000000" +PASS Number(0).toPrecision(13) is "0.000000000000" +PASS Number(0).toPrecision(14) is "0.0000000000000" +PASS Number(0).toPrecision(15) is "0.00000000000000" +PASS Number(0).toPrecision(16) is "0.000000000000000" +PASS Number(0).toPrecision(17) is "0.0000000000000000" +PASS Number(0).toPrecision(18) is "0.00000000000000000" +PASS Number(0).toPrecision(19) is "0.000000000000000000" +PASS Number(0).toPrecision(20) is "0.0000000000000000000" +PASS Number(0).toPrecision(21) is "0.00000000000000000000" +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/README b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/README new file mode 100644 index 0000000..f61a30c --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/README @@ -0,0 +1,34 @@ +StringObject-expected.txt +----------------------------- +The only difference from KJS is that +'a'.localeCompare(undefined/null) returns a negative number, but not -1. +Spec states this is implementation dependent. Different versions of +SpiderMonkey have different output. + + +encode_decode_uri +string-1-n +string-2-n +----------------------------- +Only differ in error message. + + +exception_propagation +----------------------------- +With KJS, a syntax error is thrown at compile time for the following +code: + + for (throwex() in forin_test_obj) { forin_count++; } + +Spidermonkey and V8 throw an error at runtime instead and therefore +pass this test. + + +lval-exceptions +---------------------------- +Only whitespace differences in the way functions are pretty printed. + + +parse +---------------------------- +Only differ in error message. diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/RegExp-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/RegExp-expected.txt new file mode 100644 index 0000000..bbbf9b6 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/RegExp-expected.txt @@ -0,0 +1,98 @@ +KDE JS Test + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS (new RegExp()).source is '' +PASS Boolean(new RegExp()) is true +PASS isNaN(Number(new RegExp())) is true +PASS RegExp(/x/).source is 'x' +PASS RegExp('x', 'g').global is true +PASS RegExp('x').source is 'x' +PASS new RegExp('x').source is 'x' +PASS (/a/).global is false +PASS typeof (/a/).global is 'boolean' +PASS rg.global is true +PASS (/a/).ignoreCase is false +PASS ri.ignoreCase is true +PASS (/a/).multiline is false +PASS rm.multiline is true +PASS rg.toString() is '/a/g' +PASS ri.toString() is '/a/i' +PASS rm.toString() is '/a/m' +PASS rg.global is true +PASS ri.ignoreCase is true +PASS rm.multiline is true +PASS Boolean(/a/.test) is true +PASS /(b)c/.exec('abcd').toString() is "bc,b" +PASS /(b)c/.exec('abcd').length is 2 +PASS /(b)c/.exec('abcd').index is 1 +PASS /(b)c/.exec('abcd').input is 'abcd' +PASS rs.source is 'foo' +PASS var r = new RegExp(/x/); r.global=true; r.lastIndex = -1; typeof r.test('a') is 'boolean' +PASS 'abcdefghi'.match(/(abc)def(ghi)/).toString() is 'abcdefghi,abc,ghi' +PASS /(abc)def(ghi)/.exec('abcdefghi').toString() is 'abcdefghi,abc,ghi' +PASS RegExp.$1 is 'abc' +PASS RegExp.$2 is 'ghi' +PASS RegExp.$3 is '' +PASS 'abcdefghi'.match(/(a(b(c(d(e)f)g)h)i)/).toString() is 'abcdefghi,abcdefghi,bcdefgh,cdefg,def,e' +PASS RegExp.$1 is 'abcdefghi' +PASS RegExp.$2 is 'bcdefgh' +PASS RegExp.$3 is 'cdefg' +PASS RegExp.$4 is 'def' +PASS RegExp.$5 is 'e' +PASS RegExp.$6 is '' +PASS '(100px 200px 150px 15px)'.match(/\((\d+)(px)* (\d+)(px)* (\d+)(px)* (\d+)(px)*\)/).toString() is '(100px 200px 150px 15px),100,px,200,px,150,px,15,px' +PASS RegExp.$1 is '100' +PASS RegExp.$3 is '200' +PASS RegExp.$5 is '150' +PASS RegExp.$7 is '15' +PASS ''.match(/((\d+)(px)* (\d+)(px)* (\d+)(px)* (\d+)(px)*)/) is null +FAIL RegExp.$1 should be . Was 100. +FAIL RegExp.$3 should be . Was 200. +FAIL RegExp.$5 should be . Was 150. +FAIL RegExp.$7 should be . Was 15. +PASS 'faure@kde.org'.match(invalidChars) == null is true +PASS 'faure-kde@kde.org'.match(invalidChars) == null is false +PASS 'test1test2'.replace('test','X') is 'X1test2' +PASS 'test1test2'.replace(/\d/,'X') is 'testXtest2' +PASS '1test2test3'.replace(/\d/,'') is 'test2test3' +PASS 'test1test2'.replace(/test/g,'X') is 'X1X2' +PASS '1test2test3'.replace(/\d/g,'') is 'testtest' +PASS '1test2test3'.replace(/x/g,'') is '1test2test3' +PASS 'test1test2'.replace(/(te)(st)/g,'$2$1') is 'stte1stte2' +PASS 'foo+bar'.replace(/\+/g,'%2B') is 'foo%2Bbar' +PASS caught is true +PASS 'foo'.replace(/z?/g,'x') is 'xfxoxox' +PASS 'test test'.replace(/\s*/g,'') is 'testtest' +PASS 'abc$%@'.replace(/[^0-9a-z]*/gi,'') is 'abc' +PASS 'ab'.replace(/[^\d\.]*/gi,'') is '' +PASS '1ab'.replace(/[^\d\.]*/gi,'') is '1' +PASS '1test2test3blah'.split(/test/).toString() is '1,2,3blah' +PASS reg.exec(str).toString() is '98 ,98 ' +PASS reg.lastIndex is 3 +PASS RegExp.$1 is '98 ' +PASS RegExp.$2 is '' +PASS reg.exec(str).toString() is '76 ,76 ' +PASS reg.lastIndex is 6 +PASS RegExp.$1 is '76 ' +PASS RegExp.$2 is '' +PASS reg.exec(str) is null +PASS reg.lastIndex is 0 +PASS myRe=/d(b+)d/g; myArray = myRe.exec('cdbbdbsbz'); myRe.lastIndex is 5 +PASS reg.ignoreCase == true is true +PASS reg.global === false is true +PASS reg.multiline === false is true +PASS reg.test('UGO') is true +PASS reg.x = 1; reg.x is 1 +PASS var r2 = reg; r2.x = 2; reg.x is 2 +PASS str.match(re).toString() is 'Chapter 3.4.5.1,Chapter 3.4.5.1,.1' +PASS str.match(/d/gi).toString() is 'D,d' +PASS /\u0061/.source is '\\u0061' +PASS 'abc'.match(/\u0062/).toString() is 'b' +FAIL Object.prototype.toString.apply(RegExp.prototype) should be [object RegExp]. Was [object Object]. +PASS typeof RegExp.prototype.toString() is 'string' +Done. +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/StringObject-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/StringObject-expected.txt new file mode 100644 index 0000000..208e401 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/StringObject-expected.txt @@ -0,0 +1,89 @@ +KDE JS Test + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS 'abc'.length is 3 +PASS (new String('abcd')).length is 4 +PASS String('abcde').length is 5 +PASS 'abc'.charAt(0) is 'a' +PASS 'abc'.charAt(1) is 'b' +PASS 'abc'.charAt(-1) is '' +PASS 'abc'.charAt(99) is '' +PASS 'abc'.charAt() is 'a' +PASS 'ab'.indexOf('a') is 0 +PASS 'ab'.indexOf('b') is 1 +PASS 'ab'.indexOf('x') is -1 +PASS 'ab'.indexOf('') is 0 +PASS ''.indexOf('') is 0 +PASS 'ab'.indexOf('a', -1) is 0 +PASS 'ab'.indexOf('b', 1) is 1 +PASS 'ab'.indexOf('a', 1) is -1 +PASS ' '.indexOf('', 1) is 1 +PASS String('abc').search(/b/) is 1 +PASS String('xyz').search(/b/) is -1 +PASS String('abcb').match(/b/) + '' is 'b' +PASS typeof String('abc').match(/b/) is 'object' +PASS 'xyz'.match(/b/) is null +PASS 'xyz'.match(/b/g) is null +PASS String('aabab'.match(/ab/g)) is 'ab,ab' +PASS String('aabab'.match(/(a)(b)/)) is 'ab,a,b' +PASS String('aabab'.match(/(a)(b)/g)) is 'ab,ab' +PASS String('abc'.match(/./g)) is 'a,b,c' +PASS String('abc'.match(/.*/g)) is 'abc,' +PASS var reg = /ab/g; 'aabab'.match(reg); reg.lastIndex is 0 +PASS var reg = /ab/g; 'aabab'.match(reg).length is 2 +PASS var reg = /ab/g; 'xxx'.match(reg); reg.lastIndex is 0 +PASS var reg = /ab/g; 'xxx'.match(reg) is null +PASS myRe=/d(b+)d/g; 'cdbbdbsbz'.match(myRe)[0] is 'dbbd' +PASS 'abcd'.replace(/b./, 'xy') is 'axyd' +PASS 'abcd'.replace('bc', 'x') is 'axd' +PASS 'abcd'.replace('x', 'y') is 'abcd' +PASS 'abcd'.replace(/(ab)(cd)/,'$2$1') is 'cdab' +PASS 'abcd'.replace(/(ab)(cd)/,'$2$1$') is 'cdab$' +PASS 'BEGINabcEND'.replace(/abc/,'x$') is 'BEGINx$END' +PASS f2c('The value is 212F') is 'The value is 100C' +PASS f2c_str is '212F' +PASS f2c_p1 is '212' +PASS f2c_offset is 13 +PASS f2c_s is 'The value is 212F' +PASS 'axb'.split('x').length is 2 +PASS 'axb'.split('x')[0] is 'a' +PASS 'axb'.split('x')[1] is 'b' +PASS String('abc'.split('')) is 'a,b,c' +PASS String('abc'.split(new RegExp())) is 'a,b,c' +PASS ''.split('').length is 0 +PASS 'axb'.split('x', 0).length is 0 +PASS 'axb'.split('x', 0)[0] is undefined +PASS 'axb'.split('x', 1).length is 1 +PASS 'axb'.split('x', 99).length is 2 +PASS 'axb'.split('y') + '' is 'axb' +PASS 'axb'.split('y').length is 1 +PASS ''.split('x') + '' is '' +PASS 'abc'.split() + '' is 'abc' +PASS 'axxb'.split(/x/) + '' is 'a,,b' +PASS 'axxb'.split(/x+/) + '' is 'a,b' +PASS 'axxb'.split(/x*/) + '' is 'a,b' +PASS 'abcdef'.slice(2, 5) is 'cde' +PASS 'abcdefghijklmnopqrstuvwxyz1234567890'.slice(-32, -6) is 'efghijklmnopqrstuvwxyz1234' +PASS 'abC1'.toUpperCase() is 'ABC1' +PASS 'AbC2'.toLowerCase() is 'abc2' +PASS 'a'.localeCompare('a') is 0 +PASS 'a'.localeCompare('aa') < 0 is true +PASS 'a'.localeCompare('x') < 0 is true +PASS 'x'.localeCompare('a') > 0 is true +PASS ''.localeCompare('') is 0 +PASS ''.localeCompare() is 0 +FAIL ''.localeCompare(undefined) should be -1. Was -9. +FAIL ''.localeCompare(null) should be -1. Was -4. +PASS 'a'.localeCompare('') is 1 +PASS 'a'.localeCompare() is 0 +PASS 'abc'[0] is 'a' +PASS 'abc'[-1] is undefined. +PASS 'abc'[-4] is undefined. +PASS 'abc'[10] is undefined. +PASS 'abc'[10] is 'x' +FAIL bar should be <a href="javascript:foo( 'This ', 'is ', 'a test' )">This is a test.</a>. Was <a href="javascript:foo( 'This ', 'is ', 'a test' )">This is a test.</a>. +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/encode_decode_uri-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/encode_decode_uri-expected.txt new file mode 100644 index 0000000..e2a6702 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/encode_decode_uri-expected.txt @@ -0,0 +1,1104 @@ +KDE JS Test + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS decodeURI(encodeURI(String.fromCharCode(0))) is String.fromCharCode(0) +PASS decodeURI(encodeURI(String.fromCharCode(55295))) is String.fromCharCode(55295) +PASS decodeURI(encodeURI(String.fromCharCode(57344))) is String.fromCharCode(57344) +PASS decodeURI(encodeURI(String.fromCharCode(65533))) is String.fromCharCode(65533) +PASS decodeURI(encodeURI(String.fromCharCode(65534))) is String.fromCharCode(65534) +PASS decodeURI(encodeURI(String.fromCharCode(65535))) is String.fromCharCode(65535) +PASS encodeURI(String.fromCharCode(56320)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(57343)) threw exception URIError: URI malformed. +PASS decodeURI(encodeURI(String.fromCharCode(55296) + String.fromCharCode(56320))) is String.fromCharCode(55296) + String.fromCharCode(56320) +PASS decodeURI(encodeURI(String.fromCharCode(56319) + String.fromCharCode(56320))) is String.fromCharCode(56319) + String.fromCharCode(56320) +PASS decodeURI(encodeURI(String.fromCharCode(55296) + String.fromCharCode(57343))) is String.fromCharCode(55296) + String.fromCharCode(57343) +PASS decodeURI(encodeURI(String.fromCharCode(56319) + String.fromCharCode(57343))) is String.fromCharCode(56319) + String.fromCharCode(57343) +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(0)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(55295)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(55296)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(56319)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(57344)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(57344)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(65533)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(65534)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(65535)) threw exception URIError: URI malformed. +PASS decodeURI(encodeURI(String.fromCharCode(1))) is String.fromCharCode(1) +PASS decodeURI(encodeURI(String.fromCharCode(252))) is String.fromCharCode(252) +PASS decodeURI(encodeURI(String.fromCharCode(503))) is String.fromCharCode(503) +PASS decodeURI(encodeURI(String.fromCharCode(754))) is String.fromCharCode(754) +PASS decodeURI(encodeURI(String.fromCharCode(1005))) is String.fromCharCode(1005) +PASS decodeURI(encodeURI(String.fromCharCode(1256))) is String.fromCharCode(1256) +PASS decodeURI(encodeURI(String.fromCharCode(1507))) is String.fromCharCode(1507) +PASS decodeURI(encodeURI(String.fromCharCode(1758))) is String.fromCharCode(1758) +PASS decodeURI(encodeURI(String.fromCharCode(2009))) is String.fromCharCode(2009) +PASS decodeURI(encodeURI(String.fromCharCode(2260))) is String.fromCharCode(2260) +PASS decodeURI(encodeURI(String.fromCharCode(2511))) is String.fromCharCode(2511) +PASS decodeURI(encodeURI(String.fromCharCode(2762))) is String.fromCharCode(2762) +PASS decodeURI(encodeURI(String.fromCharCode(3013))) is String.fromCharCode(3013) +PASS decodeURI(encodeURI(String.fromCharCode(3264))) is String.fromCharCode(3264) +PASS decodeURI(encodeURI(String.fromCharCode(3515))) is String.fromCharCode(3515) +PASS decodeURI(encodeURI(String.fromCharCode(3766))) is String.fromCharCode(3766) +PASS decodeURI(encodeURI(String.fromCharCode(4017))) is String.fromCharCode(4017) +PASS decodeURI(encodeURI(String.fromCharCode(4268))) is String.fromCharCode(4268) +PASS decodeURI(encodeURI(String.fromCharCode(4519))) is String.fromCharCode(4519) +PASS decodeURI(encodeURI(String.fromCharCode(4770))) is String.fromCharCode(4770) +PASS decodeURI(encodeURI(String.fromCharCode(5021))) is String.fromCharCode(5021) +PASS decodeURI(encodeURI(String.fromCharCode(5272))) is String.fromCharCode(5272) +PASS decodeURI(encodeURI(String.fromCharCode(5523))) is String.fromCharCode(5523) +PASS decodeURI(encodeURI(String.fromCharCode(5774))) is String.fromCharCode(5774) +PASS decodeURI(encodeURI(String.fromCharCode(6025))) is String.fromCharCode(6025) +PASS decodeURI(encodeURI(String.fromCharCode(6276))) is String.fromCharCode(6276) +PASS decodeURI(encodeURI(String.fromCharCode(6527))) is String.fromCharCode(6527) +PASS decodeURI(encodeURI(String.fromCharCode(6778))) is String.fromCharCode(6778) +PASS decodeURI(encodeURI(String.fromCharCode(7029))) is String.fromCharCode(7029) +PASS decodeURI(encodeURI(String.fromCharCode(7280))) is String.fromCharCode(7280) +PASS decodeURI(encodeURI(String.fromCharCode(7531))) is String.fromCharCode(7531) +PASS decodeURI(encodeURI(String.fromCharCode(7782))) is String.fromCharCode(7782) +PASS decodeURI(encodeURI(String.fromCharCode(8033))) is String.fromCharCode(8033) +PASS decodeURI(encodeURI(String.fromCharCode(8284))) is String.fromCharCode(8284) +PASS decodeURI(encodeURI(String.fromCharCode(8535))) is String.fromCharCode(8535) +PASS decodeURI(encodeURI(String.fromCharCode(8786))) is String.fromCharCode(8786) +PASS decodeURI(encodeURI(String.fromCharCode(9037))) is String.fromCharCode(9037) +PASS decodeURI(encodeURI(String.fromCharCode(9288))) is String.fromCharCode(9288) +PASS decodeURI(encodeURI(String.fromCharCode(9539))) is String.fromCharCode(9539) +PASS decodeURI(encodeURI(String.fromCharCode(9790))) is String.fromCharCode(9790) +PASS decodeURI(encodeURI(String.fromCharCode(10041))) is String.fromCharCode(10041) +PASS decodeURI(encodeURI(String.fromCharCode(10292))) is String.fromCharCode(10292) +PASS decodeURI(encodeURI(String.fromCharCode(10543))) is String.fromCharCode(10543) +PASS decodeURI(encodeURI(String.fromCharCode(10794))) is String.fromCharCode(10794) +PASS decodeURI(encodeURI(String.fromCharCode(11045))) is String.fromCharCode(11045) +PASS decodeURI(encodeURI(String.fromCharCode(11296))) is String.fromCharCode(11296) +PASS decodeURI(encodeURI(String.fromCharCode(11547))) is String.fromCharCode(11547) +PASS decodeURI(encodeURI(String.fromCharCode(11798))) is String.fromCharCode(11798) +PASS decodeURI(encodeURI(String.fromCharCode(12049))) is String.fromCharCode(12049) +PASS decodeURI(encodeURI(String.fromCharCode(12300))) is String.fromCharCode(12300) +PASS decodeURI(encodeURI(String.fromCharCode(12551))) is String.fromCharCode(12551) +PASS decodeURI(encodeURI(String.fromCharCode(12802))) is String.fromCharCode(12802) +PASS decodeURI(encodeURI(String.fromCharCode(13053))) is String.fromCharCode(13053) +PASS decodeURI(encodeURI(String.fromCharCode(13304))) is String.fromCharCode(13304) +PASS decodeURI(encodeURI(String.fromCharCode(13555))) is String.fromCharCode(13555) +PASS decodeURI(encodeURI(String.fromCharCode(13806))) is String.fromCharCode(13806) +PASS decodeURI(encodeURI(String.fromCharCode(14057))) is String.fromCharCode(14057) +PASS decodeURI(encodeURI(String.fromCharCode(14308))) is String.fromCharCode(14308) +PASS decodeURI(encodeURI(String.fromCharCode(14559))) is String.fromCharCode(14559) +PASS decodeURI(encodeURI(String.fromCharCode(14810))) is String.fromCharCode(14810) +PASS decodeURI(encodeURI(String.fromCharCode(15061))) is String.fromCharCode(15061) +PASS decodeURI(encodeURI(String.fromCharCode(15312))) is String.fromCharCode(15312) +PASS decodeURI(encodeURI(String.fromCharCode(15563))) is String.fromCharCode(15563) +PASS decodeURI(encodeURI(String.fromCharCode(15814))) is String.fromCharCode(15814) +PASS decodeURI(encodeURI(String.fromCharCode(16065))) is String.fromCharCode(16065) +PASS decodeURI(encodeURI(String.fromCharCode(16316))) is String.fromCharCode(16316) +PASS decodeURI(encodeURI(String.fromCharCode(16567))) is String.fromCharCode(16567) +PASS decodeURI(encodeURI(String.fromCharCode(16818))) is String.fromCharCode(16818) +PASS decodeURI(encodeURI(String.fromCharCode(17069))) is String.fromCharCode(17069) +PASS decodeURI(encodeURI(String.fromCharCode(17320))) is String.fromCharCode(17320) +PASS decodeURI(encodeURI(String.fromCharCode(17571))) is String.fromCharCode(17571) +PASS decodeURI(encodeURI(String.fromCharCode(17822))) is String.fromCharCode(17822) +PASS decodeURI(encodeURI(String.fromCharCode(18073))) is String.fromCharCode(18073) +PASS decodeURI(encodeURI(String.fromCharCode(18324))) is String.fromCharCode(18324) +PASS decodeURI(encodeURI(String.fromCharCode(18575))) is String.fromCharCode(18575) +PASS decodeURI(encodeURI(String.fromCharCode(18826))) is String.fromCharCode(18826) +PASS decodeURI(encodeURI(String.fromCharCode(19077))) is String.fromCharCode(19077) +PASS decodeURI(encodeURI(String.fromCharCode(19328))) is String.fromCharCode(19328) +PASS decodeURI(encodeURI(String.fromCharCode(19579))) is String.fromCharCode(19579) +PASS decodeURI(encodeURI(String.fromCharCode(19830))) is String.fromCharCode(19830) +PASS decodeURI(encodeURI(String.fromCharCode(20081))) is String.fromCharCode(20081) +PASS decodeURI(encodeURI(String.fromCharCode(20332))) is String.fromCharCode(20332) +PASS decodeURI(encodeURI(String.fromCharCode(20583))) is String.fromCharCode(20583) +PASS decodeURI(encodeURI(String.fromCharCode(20834))) is String.fromCharCode(20834) +PASS decodeURI(encodeURI(String.fromCharCode(21085))) is String.fromCharCode(21085) +PASS decodeURI(encodeURI(String.fromCharCode(21336))) is String.fromCharCode(21336) +PASS decodeURI(encodeURI(String.fromCharCode(21587))) is String.fromCharCode(21587) +PASS decodeURI(encodeURI(String.fromCharCode(21838))) is String.fromCharCode(21838) +PASS decodeURI(encodeURI(String.fromCharCode(22089))) is String.fromCharCode(22089) +PASS decodeURI(encodeURI(String.fromCharCode(22340))) is String.fromCharCode(22340) +PASS decodeURI(encodeURI(String.fromCharCode(22591))) is String.fromCharCode(22591) +PASS decodeURI(encodeURI(String.fromCharCode(22842))) is String.fromCharCode(22842) +PASS decodeURI(encodeURI(String.fromCharCode(23093))) is String.fromCharCode(23093) +PASS decodeURI(encodeURI(String.fromCharCode(23344))) is String.fromCharCode(23344) +PASS decodeURI(encodeURI(String.fromCharCode(23595))) is String.fromCharCode(23595) +PASS decodeURI(encodeURI(String.fromCharCode(23846))) is String.fromCharCode(23846) +PASS decodeURI(encodeURI(String.fromCharCode(24097))) is String.fromCharCode(24097) +PASS decodeURI(encodeURI(String.fromCharCode(24348))) is String.fromCharCode(24348) +PASS decodeURI(encodeURI(String.fromCharCode(24599))) is String.fromCharCode(24599) +PASS decodeURI(encodeURI(String.fromCharCode(24850))) is String.fromCharCode(24850) +PASS decodeURI(encodeURI(String.fromCharCode(25101))) is String.fromCharCode(25101) +PASS decodeURI(encodeURI(String.fromCharCode(25352))) is String.fromCharCode(25352) +PASS decodeURI(encodeURI(String.fromCharCode(25603))) is String.fromCharCode(25603) +PASS decodeURI(encodeURI(String.fromCharCode(25854))) is String.fromCharCode(25854) +PASS decodeURI(encodeURI(String.fromCharCode(26105))) is String.fromCharCode(26105) +PASS decodeURI(encodeURI(String.fromCharCode(26356))) is String.fromCharCode(26356) +PASS decodeURI(encodeURI(String.fromCharCode(26607))) is String.fromCharCode(26607) +PASS decodeURI(encodeURI(String.fromCharCode(26858))) is String.fromCharCode(26858) +PASS decodeURI(encodeURI(String.fromCharCode(27109))) is String.fromCharCode(27109) +PASS decodeURI(encodeURI(String.fromCharCode(27360))) is String.fromCharCode(27360) +PASS decodeURI(encodeURI(String.fromCharCode(27611))) is String.fromCharCode(27611) +PASS decodeURI(encodeURI(String.fromCharCode(27862))) is String.fromCharCode(27862) +PASS decodeURI(encodeURI(String.fromCharCode(28113))) is String.fromCharCode(28113) +PASS decodeURI(encodeURI(String.fromCharCode(28364))) is String.fromCharCode(28364) +PASS decodeURI(encodeURI(String.fromCharCode(28615))) is String.fromCharCode(28615) +PASS decodeURI(encodeURI(String.fromCharCode(28866))) is String.fromCharCode(28866) +PASS decodeURI(encodeURI(String.fromCharCode(29117))) is String.fromCharCode(29117) +PASS decodeURI(encodeURI(String.fromCharCode(29368))) is String.fromCharCode(29368) +PASS decodeURI(encodeURI(String.fromCharCode(29619))) is String.fromCharCode(29619) +PASS decodeURI(encodeURI(String.fromCharCode(29870))) is String.fromCharCode(29870) +PASS decodeURI(encodeURI(String.fromCharCode(30121))) is String.fromCharCode(30121) +PASS decodeURI(encodeURI(String.fromCharCode(30372))) is String.fromCharCode(30372) +PASS decodeURI(encodeURI(String.fromCharCode(30623))) is String.fromCharCode(30623) +PASS decodeURI(encodeURI(String.fromCharCode(30874))) is String.fromCharCode(30874) +PASS decodeURI(encodeURI(String.fromCharCode(31125))) is String.fromCharCode(31125) +PASS decodeURI(encodeURI(String.fromCharCode(31376))) is String.fromCharCode(31376) +PASS decodeURI(encodeURI(String.fromCharCode(31627))) is String.fromCharCode(31627) +PASS decodeURI(encodeURI(String.fromCharCode(31878))) is String.fromCharCode(31878) +PASS decodeURI(encodeURI(String.fromCharCode(32129))) is String.fromCharCode(32129) +PASS decodeURI(encodeURI(String.fromCharCode(32380))) is String.fromCharCode(32380) +PASS decodeURI(encodeURI(String.fromCharCode(32631))) is String.fromCharCode(32631) +PASS decodeURI(encodeURI(String.fromCharCode(32882))) is String.fromCharCode(32882) +PASS decodeURI(encodeURI(String.fromCharCode(33133))) is String.fromCharCode(33133) +PASS decodeURI(encodeURI(String.fromCharCode(33384))) is String.fromCharCode(33384) +PASS decodeURI(encodeURI(String.fromCharCode(33635))) is String.fromCharCode(33635) +PASS decodeURI(encodeURI(String.fromCharCode(33886))) is String.fromCharCode(33886) +PASS decodeURI(encodeURI(String.fromCharCode(34137))) is String.fromCharCode(34137) +PASS decodeURI(encodeURI(String.fromCharCode(34388))) is String.fromCharCode(34388) +PASS decodeURI(encodeURI(String.fromCharCode(34639))) is String.fromCharCode(34639) +PASS decodeURI(encodeURI(String.fromCharCode(34890))) is String.fromCharCode(34890) +PASS decodeURI(encodeURI(String.fromCharCode(35141))) is String.fromCharCode(35141) +PASS decodeURI(encodeURI(String.fromCharCode(35392))) is String.fromCharCode(35392) +PASS decodeURI(encodeURI(String.fromCharCode(35643))) is String.fromCharCode(35643) +PASS decodeURI(encodeURI(String.fromCharCode(35894))) is String.fromCharCode(35894) +PASS decodeURI(encodeURI(String.fromCharCode(36145))) is String.fromCharCode(36145) +PASS decodeURI(encodeURI(String.fromCharCode(36396))) is String.fromCharCode(36396) +PASS decodeURI(encodeURI(String.fromCharCode(36647))) is String.fromCharCode(36647) +PASS decodeURI(encodeURI(String.fromCharCode(36898))) is String.fromCharCode(36898) +PASS decodeURI(encodeURI(String.fromCharCode(37149))) is String.fromCharCode(37149) +PASS decodeURI(encodeURI(String.fromCharCode(37400))) is String.fromCharCode(37400) +PASS decodeURI(encodeURI(String.fromCharCode(37651))) is String.fromCharCode(37651) +PASS decodeURI(encodeURI(String.fromCharCode(37902))) is String.fromCharCode(37902) +PASS decodeURI(encodeURI(String.fromCharCode(38153))) is String.fromCharCode(38153) +PASS decodeURI(encodeURI(String.fromCharCode(38404))) is String.fromCharCode(38404) +PASS decodeURI(encodeURI(String.fromCharCode(38655))) is String.fromCharCode(38655) +PASS decodeURI(encodeURI(String.fromCharCode(38906))) is String.fromCharCode(38906) +PASS decodeURI(encodeURI(String.fromCharCode(39157))) is String.fromCharCode(39157) +PASS decodeURI(encodeURI(String.fromCharCode(39408))) is String.fromCharCode(39408) +PASS decodeURI(encodeURI(String.fromCharCode(39659))) is String.fromCharCode(39659) +PASS decodeURI(encodeURI(String.fromCharCode(39910))) is String.fromCharCode(39910) +PASS decodeURI(encodeURI(String.fromCharCode(40161))) is String.fromCharCode(40161) +PASS decodeURI(encodeURI(String.fromCharCode(40412))) is String.fromCharCode(40412) +PASS decodeURI(encodeURI(String.fromCharCode(40663))) is String.fromCharCode(40663) +PASS decodeURI(encodeURI(String.fromCharCode(40914))) is String.fromCharCode(40914) +PASS decodeURI(encodeURI(String.fromCharCode(41165))) is String.fromCharCode(41165) +PASS decodeURI(encodeURI(String.fromCharCode(41416))) is String.fromCharCode(41416) +PASS decodeURI(encodeURI(String.fromCharCode(41667))) is String.fromCharCode(41667) +PASS decodeURI(encodeURI(String.fromCharCode(41918))) is String.fromCharCode(41918) +PASS decodeURI(encodeURI(String.fromCharCode(42169))) is String.fromCharCode(42169) +PASS decodeURI(encodeURI(String.fromCharCode(42420))) is String.fromCharCode(42420) +PASS decodeURI(encodeURI(String.fromCharCode(42671))) is String.fromCharCode(42671) +PASS decodeURI(encodeURI(String.fromCharCode(42922))) is String.fromCharCode(42922) +PASS decodeURI(encodeURI(String.fromCharCode(43173))) is String.fromCharCode(43173) +PASS decodeURI(encodeURI(String.fromCharCode(43424))) is String.fromCharCode(43424) +PASS decodeURI(encodeURI(String.fromCharCode(43675))) is String.fromCharCode(43675) +PASS decodeURI(encodeURI(String.fromCharCode(43926))) is String.fromCharCode(43926) +PASS decodeURI(encodeURI(String.fromCharCode(44177))) is String.fromCharCode(44177) +PASS decodeURI(encodeURI(String.fromCharCode(44428))) is String.fromCharCode(44428) +PASS decodeURI(encodeURI(String.fromCharCode(44679))) is String.fromCharCode(44679) +PASS decodeURI(encodeURI(String.fromCharCode(44930))) is String.fromCharCode(44930) +PASS decodeURI(encodeURI(String.fromCharCode(45181))) is String.fromCharCode(45181) +PASS decodeURI(encodeURI(String.fromCharCode(45432))) is String.fromCharCode(45432) +PASS decodeURI(encodeURI(String.fromCharCode(45683))) is String.fromCharCode(45683) +PASS decodeURI(encodeURI(String.fromCharCode(45934))) is String.fromCharCode(45934) +PASS decodeURI(encodeURI(String.fromCharCode(46185))) is String.fromCharCode(46185) +PASS decodeURI(encodeURI(String.fromCharCode(46436))) is String.fromCharCode(46436) +PASS decodeURI(encodeURI(String.fromCharCode(46687))) is String.fromCharCode(46687) +PASS decodeURI(encodeURI(String.fromCharCode(46938))) is String.fromCharCode(46938) +PASS decodeURI(encodeURI(String.fromCharCode(47189))) is String.fromCharCode(47189) +PASS decodeURI(encodeURI(String.fromCharCode(47440))) is String.fromCharCode(47440) +PASS decodeURI(encodeURI(String.fromCharCode(47691))) is String.fromCharCode(47691) +PASS decodeURI(encodeURI(String.fromCharCode(47942))) is String.fromCharCode(47942) +PASS decodeURI(encodeURI(String.fromCharCode(48193))) is String.fromCharCode(48193) +PASS decodeURI(encodeURI(String.fromCharCode(48444))) is String.fromCharCode(48444) +PASS decodeURI(encodeURI(String.fromCharCode(48695))) is String.fromCharCode(48695) +PASS decodeURI(encodeURI(String.fromCharCode(48946))) is String.fromCharCode(48946) +PASS decodeURI(encodeURI(String.fromCharCode(49197))) is String.fromCharCode(49197) +PASS decodeURI(encodeURI(String.fromCharCode(49448))) is String.fromCharCode(49448) +PASS decodeURI(encodeURI(String.fromCharCode(49699))) is String.fromCharCode(49699) +PASS decodeURI(encodeURI(String.fromCharCode(49950))) is String.fromCharCode(49950) +PASS decodeURI(encodeURI(String.fromCharCode(50201))) is String.fromCharCode(50201) +PASS decodeURI(encodeURI(String.fromCharCode(50452))) is String.fromCharCode(50452) +PASS decodeURI(encodeURI(String.fromCharCode(50703))) is String.fromCharCode(50703) +PASS decodeURI(encodeURI(String.fromCharCode(50954))) is String.fromCharCode(50954) +PASS decodeURI(encodeURI(String.fromCharCode(51205))) is String.fromCharCode(51205) +PASS decodeURI(encodeURI(String.fromCharCode(51456))) is String.fromCharCode(51456) +PASS decodeURI(encodeURI(String.fromCharCode(51707))) is String.fromCharCode(51707) +PASS decodeURI(encodeURI(String.fromCharCode(51958))) is String.fromCharCode(51958) +PASS decodeURI(encodeURI(String.fromCharCode(52209))) is String.fromCharCode(52209) +PASS decodeURI(encodeURI(String.fromCharCode(52460))) is String.fromCharCode(52460) +PASS decodeURI(encodeURI(String.fromCharCode(52711))) is String.fromCharCode(52711) +PASS decodeURI(encodeURI(String.fromCharCode(52962))) is String.fromCharCode(52962) +PASS decodeURI(encodeURI(String.fromCharCode(53213))) is String.fromCharCode(53213) +PASS decodeURI(encodeURI(String.fromCharCode(53464))) is String.fromCharCode(53464) +PASS decodeURI(encodeURI(String.fromCharCode(53715))) is String.fromCharCode(53715) +PASS decodeURI(encodeURI(String.fromCharCode(53966))) is String.fromCharCode(53966) +PASS decodeURI(encodeURI(String.fromCharCode(54217))) is String.fromCharCode(54217) +PASS decodeURI(encodeURI(String.fromCharCode(54468))) is String.fromCharCode(54468) +PASS decodeURI(encodeURI(String.fromCharCode(54719))) is String.fromCharCode(54719) +PASS decodeURI(encodeURI(String.fromCharCode(54970))) is String.fromCharCode(54970) +PASS decodeURI(encodeURI(String.fromCharCode(55221))) is String.fromCharCode(55221) +PASS decodeURI(encodeURI(String.fromCharCode(57345))) is String.fromCharCode(57345) +PASS decodeURI(encodeURI(String.fromCharCode(57596))) is String.fromCharCode(57596) +PASS decodeURI(encodeURI(String.fromCharCode(57847))) is String.fromCharCode(57847) +PASS decodeURI(encodeURI(String.fromCharCode(58098))) is String.fromCharCode(58098) +PASS decodeURI(encodeURI(String.fromCharCode(58349))) is String.fromCharCode(58349) +PASS decodeURI(encodeURI(String.fromCharCode(58600))) is String.fromCharCode(58600) +PASS decodeURI(encodeURI(String.fromCharCode(58851))) is String.fromCharCode(58851) +PASS decodeURI(encodeURI(String.fromCharCode(59102))) is String.fromCharCode(59102) +PASS decodeURI(encodeURI(String.fromCharCode(59353))) is String.fromCharCode(59353) +PASS decodeURI(encodeURI(String.fromCharCode(59604))) is String.fromCharCode(59604) +PASS decodeURI(encodeURI(String.fromCharCode(59855))) is String.fromCharCode(59855) +PASS decodeURI(encodeURI(String.fromCharCode(60106))) is String.fromCharCode(60106) +PASS decodeURI(encodeURI(String.fromCharCode(60357))) is String.fromCharCode(60357) +PASS decodeURI(encodeURI(String.fromCharCode(60608))) is String.fromCharCode(60608) +PASS decodeURI(encodeURI(String.fromCharCode(60859))) is String.fromCharCode(60859) +PASS decodeURI(encodeURI(String.fromCharCode(61110))) is String.fromCharCode(61110) +PASS decodeURI(encodeURI(String.fromCharCode(61361))) is String.fromCharCode(61361) +PASS decodeURI(encodeURI(String.fromCharCode(61612))) is String.fromCharCode(61612) +PASS decodeURI(encodeURI(String.fromCharCode(61863))) is String.fromCharCode(61863) +PASS decodeURI(encodeURI(String.fromCharCode(62114))) is String.fromCharCode(62114) +PASS decodeURI(encodeURI(String.fromCharCode(62365))) is String.fromCharCode(62365) +PASS decodeURI(encodeURI(String.fromCharCode(62616))) is String.fromCharCode(62616) +PASS decodeURI(encodeURI(String.fromCharCode(62867))) is String.fromCharCode(62867) +PASS decodeURI(encodeURI(String.fromCharCode(63118))) is String.fromCharCode(63118) +PASS decodeURI(encodeURI(String.fromCharCode(63369))) is String.fromCharCode(63369) +PASS decodeURI(encodeURI(String.fromCharCode(63620))) is String.fromCharCode(63620) +PASS decodeURI(encodeURI(String.fromCharCode(63871))) is String.fromCharCode(63871) +PASS decodeURI(encodeURI(String.fromCharCode(64122))) is String.fromCharCode(64122) +PASS decodeURI(encodeURI(String.fromCharCode(64373))) is String.fromCharCode(64373) +PASS decodeURI(encodeURI(String.fromCharCode(64624))) is String.fromCharCode(64624) +PASS decodeURI(encodeURI(String.fromCharCode(64875))) is String.fromCharCode(64875) +PASS decodeURI(encodeURI(String.fromCharCode(65126))) is String.fromCharCode(65126) +PASS decodeURI(encodeURI(String.fromCharCode(65377))) is String.fromCharCode(65377) +PASS encodeURI(String.fromCharCode(56321)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(56572)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(56823)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(57074)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(57325)) threw exception URIError: URI malformed. +PASS decodeURI(encodeURI(String.fromCharCode(55297) + String.fromCharCode(56320))) is String.fromCharCode(55297) + String.fromCharCode(56320) +PASS decodeURI(encodeURI(String.fromCharCode(55548) + String.fromCharCode(56320))) is String.fromCharCode(55548) + String.fromCharCode(56320) +PASS decodeURI(encodeURI(String.fromCharCode(55799) + String.fromCharCode(56320))) is String.fromCharCode(55799) + String.fromCharCode(56320) +PASS decodeURI(encodeURI(String.fromCharCode(56050) + String.fromCharCode(56320))) is String.fromCharCode(56050) + String.fromCharCode(56320) +PASS decodeURI(encodeURI(String.fromCharCode(56301) + String.fromCharCode(56320))) is String.fromCharCode(56301) + String.fromCharCode(56320) +PASS decodeURI(encodeURI(String.fromCharCode(55296) + String.fromCharCode(56321))) is String.fromCharCode(55296) + String.fromCharCode(56321) +PASS decodeURI(encodeURI(String.fromCharCode(55296) + String.fromCharCode(56572))) is String.fromCharCode(55296) + String.fromCharCode(56572) +PASS decodeURI(encodeURI(String.fromCharCode(55296) + String.fromCharCode(56823))) is String.fromCharCode(55296) + String.fromCharCode(56823) +PASS decodeURI(encodeURI(String.fromCharCode(55296) + String.fromCharCode(57074))) is String.fromCharCode(55296) + String.fromCharCode(57074) +PASS decodeURI(encodeURI(String.fromCharCode(55296) + String.fromCharCode(57325))) is String.fromCharCode(55296) + String.fromCharCode(57325) +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(1)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(252)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(503)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(754)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(1005)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(1256)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(1507)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(1758)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(2009)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(2260)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(2511)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(2762)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(3013)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(3264)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(3515)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(3766)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(4017)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(4268)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(4519)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(4770)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(5021)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(5272)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(5523)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(5774)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(6025)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(6276)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(6527)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(6778)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(7029)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(7280)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(7531)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(7782)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(8033)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(8284)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(8535)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(8786)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(9037)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(9288)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(9539)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(9790)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(10041)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(10292)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(10543)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(10794)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(11045)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(11296)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(11547)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(11798)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(12049)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(12300)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(12551)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(12802)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(13053)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(13304)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(13555)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(13806)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(14057)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(14308)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(14559)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(14810)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(15061)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(15312)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(15563)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(15814)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(16065)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(16316)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(16567)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(16818)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(17069)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(17320)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(17571)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(17822)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(18073)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(18324)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(18575)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(18826)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(19077)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(19328)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(19579)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(19830)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(20081)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(20332)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(20583)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(20834)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(21085)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(21336)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(21587)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(21838)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(22089)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(22340)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(22591)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(22842)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(23093)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(23344)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(23595)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(23846)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(24097)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(24348)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(24599)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(24850)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(25101)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(25352)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(25603)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(25854)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(26105)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(26356)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(26607)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(26858)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(27109)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(27360)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(27611)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(27862)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(28113)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(28364)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(28615)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(28866)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(29117)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(29368)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(29619)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(29870)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(30121)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(30372)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(30623)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(30874)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(31125)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(31376)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(31627)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(31878)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(32129)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(32380)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(32631)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(32882)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(33133)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(33384)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(33635)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(33886)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(34137)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(34388)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(34639)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(34890)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(35141)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(35392)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(35643)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(35894)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(36145)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(36396)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(36647)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(36898)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(37149)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(37400)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(37651)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(37902)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(38153)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(38404)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(38655)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(38906)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(39157)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(39408)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(39659)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(39910)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(40161)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(40412)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(40663)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(40914)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(41165)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(41416)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(41667)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(41918)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(42169)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(42420)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(42671)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(42922)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(43173)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(43424)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(43675)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(43926)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(44177)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(44428)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(44679)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(44930)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(45181)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(45432)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(45683)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(45934)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(46185)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(46436)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(46687)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(46938)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(47189)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(47440)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(47691)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(47942)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(48193)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(48444)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(48695)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(48946)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(49197)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(49448)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(49699)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(49950)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(50201)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(50452)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(50703)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(50954)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(51205)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(51456)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(51707)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(51958)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(52209)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(52460)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(52711)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(52962)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(53213)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(53464)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(53715)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(53966)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(54217)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(54468)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(54719)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(54970)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(55221)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(55472)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(55723)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(55974)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(56225)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(57345)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(57596)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(57847)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(58098)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(58349)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(58600)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(58851)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(59102)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(59353)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(59604)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(59855)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(60106)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(60357)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(60608)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(60859)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(61110)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(61361)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(61612)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(61863)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(62114)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(62365)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(62616)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(62867)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(63118)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(63369)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(63620)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(63871)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(64122)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(64373)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(64624)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(64875)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(65126)) threw exception URIError: URI malformed. +PASS encodeURI(String.fromCharCode(55296) + String.fromCharCode(65377)) threw exception URIError: URI malformed. +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(0))) is String.fromCharCode(0) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(55295))) is String.fromCharCode(55295) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(57344))) is String.fromCharCode(57344) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(65533))) is String.fromCharCode(65533) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(65534))) is String.fromCharCode(65534) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(65535))) is String.fromCharCode(65535) +PASS encodeURIComponent(String.fromCharCode(56320)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(57343)) threw exception URIError: URI malformed. +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(56320))) is String.fromCharCode(55296) + String.fromCharCode(56320) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(56319) + String.fromCharCode(56320))) is String.fromCharCode(56319) + String.fromCharCode(56320) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(57343))) is String.fromCharCode(55296) + String.fromCharCode(57343) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(56319) + String.fromCharCode(57343))) is String.fromCharCode(56319) + String.fromCharCode(57343) +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(0)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(55295)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(55296)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(56319)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(57344)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(57344)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(65533)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(65534)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(65535)) threw exception URIError: URI malformed. +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(1))) is String.fromCharCode(1) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(252))) is String.fromCharCode(252) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(503))) is String.fromCharCode(503) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(754))) is String.fromCharCode(754) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(1005))) is String.fromCharCode(1005) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(1256))) is String.fromCharCode(1256) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(1507))) is String.fromCharCode(1507) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(1758))) is String.fromCharCode(1758) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(2009))) is String.fromCharCode(2009) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(2260))) is String.fromCharCode(2260) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(2511))) is String.fromCharCode(2511) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(2762))) is String.fromCharCode(2762) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(3013))) is String.fromCharCode(3013) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(3264))) is String.fromCharCode(3264) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(3515))) is String.fromCharCode(3515) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(3766))) is String.fromCharCode(3766) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(4017))) is String.fromCharCode(4017) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(4268))) is String.fromCharCode(4268) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(4519))) is String.fromCharCode(4519) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(4770))) is String.fromCharCode(4770) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(5021))) is String.fromCharCode(5021) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(5272))) is String.fromCharCode(5272) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(5523))) is String.fromCharCode(5523) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(5774))) is String.fromCharCode(5774) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(6025))) is String.fromCharCode(6025) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(6276))) is String.fromCharCode(6276) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(6527))) is String.fromCharCode(6527) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(6778))) is String.fromCharCode(6778) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(7029))) is String.fromCharCode(7029) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(7280))) is String.fromCharCode(7280) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(7531))) is String.fromCharCode(7531) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(7782))) is String.fromCharCode(7782) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(8033))) is String.fromCharCode(8033) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(8284))) is String.fromCharCode(8284) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(8535))) is String.fromCharCode(8535) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(8786))) is String.fromCharCode(8786) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(9037))) is String.fromCharCode(9037) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(9288))) is String.fromCharCode(9288) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(9539))) is String.fromCharCode(9539) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(9790))) is String.fromCharCode(9790) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(10041))) is String.fromCharCode(10041) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(10292))) is String.fromCharCode(10292) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(10543))) is String.fromCharCode(10543) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(10794))) is String.fromCharCode(10794) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(11045))) is String.fromCharCode(11045) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(11296))) is String.fromCharCode(11296) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(11547))) is String.fromCharCode(11547) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(11798))) is String.fromCharCode(11798) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(12049))) is String.fromCharCode(12049) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(12300))) is String.fromCharCode(12300) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(12551))) is String.fromCharCode(12551) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(12802))) is String.fromCharCode(12802) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(13053))) is String.fromCharCode(13053) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(13304))) is String.fromCharCode(13304) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(13555))) is String.fromCharCode(13555) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(13806))) is String.fromCharCode(13806) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(14057))) is String.fromCharCode(14057) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(14308))) is String.fromCharCode(14308) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(14559))) is String.fromCharCode(14559) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(14810))) is String.fromCharCode(14810) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(15061))) is String.fromCharCode(15061) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(15312))) is String.fromCharCode(15312) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(15563))) is String.fromCharCode(15563) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(15814))) is String.fromCharCode(15814) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(16065))) is String.fromCharCode(16065) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(16316))) is String.fromCharCode(16316) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(16567))) is String.fromCharCode(16567) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(16818))) is String.fromCharCode(16818) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(17069))) is String.fromCharCode(17069) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(17320))) is String.fromCharCode(17320) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(17571))) is String.fromCharCode(17571) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(17822))) is String.fromCharCode(17822) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(18073))) is String.fromCharCode(18073) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(18324))) is String.fromCharCode(18324) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(18575))) is String.fromCharCode(18575) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(18826))) is String.fromCharCode(18826) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(19077))) is String.fromCharCode(19077) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(19328))) is String.fromCharCode(19328) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(19579))) is String.fromCharCode(19579) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(19830))) is String.fromCharCode(19830) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(20081))) is String.fromCharCode(20081) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(20332))) is String.fromCharCode(20332) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(20583))) is String.fromCharCode(20583) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(20834))) is String.fromCharCode(20834) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(21085))) is String.fromCharCode(21085) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(21336))) is String.fromCharCode(21336) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(21587))) is String.fromCharCode(21587) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(21838))) is String.fromCharCode(21838) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(22089))) is String.fromCharCode(22089) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(22340))) is String.fromCharCode(22340) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(22591))) is String.fromCharCode(22591) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(22842))) is String.fromCharCode(22842) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(23093))) is String.fromCharCode(23093) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(23344))) is String.fromCharCode(23344) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(23595))) is String.fromCharCode(23595) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(23846))) is String.fromCharCode(23846) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(24097))) is String.fromCharCode(24097) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(24348))) is String.fromCharCode(24348) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(24599))) is String.fromCharCode(24599) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(24850))) is String.fromCharCode(24850) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(25101))) is String.fromCharCode(25101) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(25352))) is String.fromCharCode(25352) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(25603))) is String.fromCharCode(25603) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(25854))) is String.fromCharCode(25854) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(26105))) is String.fromCharCode(26105) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(26356))) is String.fromCharCode(26356) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(26607))) is String.fromCharCode(26607) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(26858))) is String.fromCharCode(26858) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(27109))) is String.fromCharCode(27109) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(27360))) is String.fromCharCode(27360) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(27611))) is String.fromCharCode(27611) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(27862))) is String.fromCharCode(27862) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(28113))) is String.fromCharCode(28113) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(28364))) is String.fromCharCode(28364) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(28615))) is String.fromCharCode(28615) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(28866))) is String.fromCharCode(28866) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(29117))) is String.fromCharCode(29117) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(29368))) is String.fromCharCode(29368) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(29619))) is String.fromCharCode(29619) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(29870))) is String.fromCharCode(29870) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(30121))) is String.fromCharCode(30121) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(30372))) is String.fromCharCode(30372) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(30623))) is String.fromCharCode(30623) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(30874))) is String.fromCharCode(30874) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(31125))) is String.fromCharCode(31125) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(31376))) is String.fromCharCode(31376) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(31627))) is String.fromCharCode(31627) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(31878))) is String.fromCharCode(31878) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(32129))) is String.fromCharCode(32129) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(32380))) is String.fromCharCode(32380) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(32631))) is String.fromCharCode(32631) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(32882))) is String.fromCharCode(32882) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(33133))) is String.fromCharCode(33133) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(33384))) is String.fromCharCode(33384) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(33635))) is String.fromCharCode(33635) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(33886))) is String.fromCharCode(33886) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(34137))) is String.fromCharCode(34137) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(34388))) is String.fromCharCode(34388) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(34639))) is String.fromCharCode(34639) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(34890))) is String.fromCharCode(34890) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(35141))) is String.fromCharCode(35141) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(35392))) is String.fromCharCode(35392) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(35643))) is String.fromCharCode(35643) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(35894))) is String.fromCharCode(35894) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(36145))) is String.fromCharCode(36145) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(36396))) is String.fromCharCode(36396) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(36647))) is String.fromCharCode(36647) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(36898))) is String.fromCharCode(36898) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(37149))) is String.fromCharCode(37149) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(37400))) is String.fromCharCode(37400) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(37651))) is String.fromCharCode(37651) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(37902))) is String.fromCharCode(37902) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(38153))) is String.fromCharCode(38153) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(38404))) is String.fromCharCode(38404) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(38655))) is String.fromCharCode(38655) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(38906))) is String.fromCharCode(38906) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(39157))) is String.fromCharCode(39157) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(39408))) is String.fromCharCode(39408) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(39659))) is String.fromCharCode(39659) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(39910))) is String.fromCharCode(39910) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(40161))) is String.fromCharCode(40161) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(40412))) is String.fromCharCode(40412) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(40663))) is String.fromCharCode(40663) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(40914))) is String.fromCharCode(40914) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(41165))) is String.fromCharCode(41165) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(41416))) is String.fromCharCode(41416) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(41667))) is String.fromCharCode(41667) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(41918))) is String.fromCharCode(41918) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(42169))) is String.fromCharCode(42169) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(42420))) is String.fromCharCode(42420) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(42671))) is String.fromCharCode(42671) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(42922))) is String.fromCharCode(42922) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(43173))) is String.fromCharCode(43173) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(43424))) is String.fromCharCode(43424) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(43675))) is String.fromCharCode(43675) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(43926))) is String.fromCharCode(43926) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(44177))) is String.fromCharCode(44177) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(44428))) is String.fromCharCode(44428) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(44679))) is String.fromCharCode(44679) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(44930))) is String.fromCharCode(44930) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(45181))) is String.fromCharCode(45181) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(45432))) is String.fromCharCode(45432) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(45683))) is String.fromCharCode(45683) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(45934))) is String.fromCharCode(45934) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(46185))) is String.fromCharCode(46185) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(46436))) is String.fromCharCode(46436) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(46687))) is String.fromCharCode(46687) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(46938))) is String.fromCharCode(46938) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(47189))) is String.fromCharCode(47189) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(47440))) is String.fromCharCode(47440) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(47691))) is String.fromCharCode(47691) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(47942))) is String.fromCharCode(47942) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(48193))) is String.fromCharCode(48193) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(48444))) is String.fromCharCode(48444) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(48695))) is String.fromCharCode(48695) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(48946))) is String.fromCharCode(48946) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(49197))) is String.fromCharCode(49197) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(49448))) is String.fromCharCode(49448) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(49699))) is String.fromCharCode(49699) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(49950))) is String.fromCharCode(49950) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(50201))) is String.fromCharCode(50201) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(50452))) is String.fromCharCode(50452) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(50703))) is String.fromCharCode(50703) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(50954))) is String.fromCharCode(50954) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(51205))) is String.fromCharCode(51205) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(51456))) is String.fromCharCode(51456) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(51707))) is String.fromCharCode(51707) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(51958))) is String.fromCharCode(51958) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(52209))) is String.fromCharCode(52209) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(52460))) is String.fromCharCode(52460) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(52711))) is String.fromCharCode(52711) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(52962))) is String.fromCharCode(52962) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(53213))) is String.fromCharCode(53213) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(53464))) is String.fromCharCode(53464) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(53715))) is String.fromCharCode(53715) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(53966))) is String.fromCharCode(53966) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(54217))) is String.fromCharCode(54217) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(54468))) is String.fromCharCode(54468) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(54719))) is String.fromCharCode(54719) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(54970))) is String.fromCharCode(54970) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(55221))) is String.fromCharCode(55221) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(57345))) is String.fromCharCode(57345) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(57596))) is String.fromCharCode(57596) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(57847))) is String.fromCharCode(57847) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(58098))) is String.fromCharCode(58098) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(58349))) is String.fromCharCode(58349) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(58600))) is String.fromCharCode(58600) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(58851))) is String.fromCharCode(58851) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(59102))) is String.fromCharCode(59102) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(59353))) is String.fromCharCode(59353) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(59604))) is String.fromCharCode(59604) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(59855))) is String.fromCharCode(59855) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(60106))) is String.fromCharCode(60106) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(60357))) is String.fromCharCode(60357) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(60608))) is String.fromCharCode(60608) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(60859))) is String.fromCharCode(60859) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(61110))) is String.fromCharCode(61110) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(61361))) is String.fromCharCode(61361) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(61612))) is String.fromCharCode(61612) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(61863))) is String.fromCharCode(61863) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(62114))) is String.fromCharCode(62114) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(62365))) is String.fromCharCode(62365) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(62616))) is String.fromCharCode(62616) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(62867))) is String.fromCharCode(62867) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(63118))) is String.fromCharCode(63118) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(63369))) is String.fromCharCode(63369) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(63620))) is String.fromCharCode(63620) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(63871))) is String.fromCharCode(63871) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(64122))) is String.fromCharCode(64122) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(64373))) is String.fromCharCode(64373) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(64624))) is String.fromCharCode(64624) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(64875))) is String.fromCharCode(64875) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(65126))) is String.fromCharCode(65126) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(65377))) is String.fromCharCode(65377) +PASS encodeURIComponent(String.fromCharCode(56321)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(56572)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(56823)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(57074)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(57325)) threw exception URIError: URI malformed. +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(55297) + String.fromCharCode(56320))) is String.fromCharCode(55297) + String.fromCharCode(56320) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(55548) + String.fromCharCode(56320))) is String.fromCharCode(55548) + String.fromCharCode(56320) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(55799) + String.fromCharCode(56320))) is String.fromCharCode(55799) + String.fromCharCode(56320) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(56050) + String.fromCharCode(56320))) is String.fromCharCode(56050) + String.fromCharCode(56320) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(56301) + String.fromCharCode(56320))) is String.fromCharCode(56301) + String.fromCharCode(56320) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(56321))) is String.fromCharCode(55296) + String.fromCharCode(56321) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(56572))) is String.fromCharCode(55296) + String.fromCharCode(56572) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(56823))) is String.fromCharCode(55296) + String.fromCharCode(56823) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(57074))) is String.fromCharCode(55296) + String.fromCharCode(57074) +PASS decodeURIComponent(encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(57325))) is String.fromCharCode(55296) + String.fromCharCode(57325) +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(1)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(252)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(503)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(754)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(1005)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(1256)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(1507)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(1758)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(2009)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(2260)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(2511)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(2762)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(3013)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(3264)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(3515)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(3766)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(4017)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(4268)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(4519)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(4770)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(5021)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(5272)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(5523)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(5774)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(6025)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(6276)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(6527)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(6778)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(7029)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(7280)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(7531)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(7782)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(8033)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(8284)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(8535)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(8786)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(9037)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(9288)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(9539)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(9790)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(10041)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(10292)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(10543)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(10794)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(11045)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(11296)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(11547)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(11798)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(12049)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(12300)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(12551)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(12802)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(13053)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(13304)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(13555)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(13806)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(14057)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(14308)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(14559)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(14810)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(15061)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(15312)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(15563)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(15814)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(16065)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(16316)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(16567)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(16818)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(17069)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(17320)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(17571)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(17822)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(18073)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(18324)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(18575)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(18826)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(19077)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(19328)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(19579)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(19830)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(20081)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(20332)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(20583)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(20834)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(21085)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(21336)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(21587)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(21838)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(22089)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(22340)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(22591)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(22842)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(23093)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(23344)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(23595)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(23846)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(24097)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(24348)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(24599)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(24850)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(25101)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(25352)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(25603)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(25854)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(26105)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(26356)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(26607)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(26858)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(27109)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(27360)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(27611)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(27862)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(28113)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(28364)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(28615)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(28866)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(29117)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(29368)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(29619)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(29870)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(30121)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(30372)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(30623)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(30874)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(31125)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(31376)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(31627)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(31878)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(32129)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(32380)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(32631)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(32882)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(33133)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(33384)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(33635)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(33886)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(34137)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(34388)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(34639)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(34890)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(35141)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(35392)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(35643)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(35894)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(36145)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(36396)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(36647)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(36898)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(37149)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(37400)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(37651)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(37902)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(38153)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(38404)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(38655)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(38906)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(39157)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(39408)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(39659)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(39910)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(40161)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(40412)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(40663)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(40914)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(41165)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(41416)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(41667)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(41918)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(42169)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(42420)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(42671)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(42922)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(43173)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(43424)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(43675)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(43926)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(44177)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(44428)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(44679)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(44930)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(45181)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(45432)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(45683)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(45934)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(46185)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(46436)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(46687)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(46938)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(47189)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(47440)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(47691)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(47942)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(48193)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(48444)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(48695)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(48946)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(49197)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(49448)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(49699)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(49950)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(50201)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(50452)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(50703)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(50954)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(51205)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(51456)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(51707)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(51958)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(52209)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(52460)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(52711)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(52962)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(53213)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(53464)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(53715)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(53966)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(54217)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(54468)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(54719)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(54970)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(55221)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(55472)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(55723)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(55974)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(56225)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(57345)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(57596)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(57847)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(58098)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(58349)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(58600)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(58851)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(59102)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(59353)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(59604)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(59855)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(60106)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(60357)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(60608)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(60859)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(61110)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(61361)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(61612)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(61863)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(62114)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(62365)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(62616)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(62867)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(63118)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(63369)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(63620)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(63871)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(64122)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(64373)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(64624)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(64875)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(65126)) threw exception URIError: URI malformed. +PASS encodeURIComponent(String.fromCharCode(55296) + String.fromCharCode(65377)) threw exception URIError: URI malformed. +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/garbage-n-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/garbage-n-expected.txt new file mode 100644 index 0000000..29ea253 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/garbage-n-expected.txt @@ -0,0 +1,9 @@ +CONSOLE MESSAGE: line 1: Uncaught SyntaxError: Unexpected identifier +KDE JS Test + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS window.successfullyParsed is undefined. + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/lval-exceptions-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/lval-exceptions-expected.txt new file mode 100644 index 0000000..6ed68cc --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/lval-exceptions-expected.txt @@ -0,0 +1,17 @@ +KDE JS Test + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS function () { a = x; } threw exception ReferenceError: x is not defined. +PASS function () { x += "foo"; } threw exception ReferenceError: x is not defined. +PASS function () { b = a.x; } did not throw an exception +PASS function () { b = a['x']; } did not throw an exception +PASS function () { a['x'] += 'baz'; } did not throw an exception +PASS a['x'] is "undefinedbaz" +PASS function () { b = a.y; } did not throw an exception +PASS function () { a.y += 'glarch'; } did not throw an exception +PASS a['y'] is "undefinedglarch" +PASS successfullyParsed is true + +TEST COMPLETE
\ No newline at end of file diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/parse-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/parse-expected.txt new file mode 100644 index 0000000..74362ce --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/parse-expected.txt @@ -0,0 +1,17 @@ +KDE JS Test + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS var éĀʯΈᢨ = 101; éĀʯΈᢨ; is 101 +PASS var f÷; threw exception SyntaxError: Unexpected token ILLEGAL. +PASS var \u0061 = 102; a is 102 +PASS var f\u0030 = 103; f0 is 103 +PASS var \u00E9\u0100\u02AF\u0388\u18A8 = 104; \u00E9\u0100\u02AF\u0388\u18A8; is 104 +PASS var f\u00F7; threw exception SyntaxError: Unexpected token ILLEGAL. +PASS var \u0030; threw exception SyntaxError: Unexpected token ILLEGAL. +PASS var test = { }; test.i= 0; test.i\u002b= 1; test.i; threw exception SyntaxError: Unexpected token ILLEGAL. +PASS var test = { }; test.i= 0; test.i+= 1; test.i; is 1 +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/string-1-n-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/string-1-n-expected.txt new file mode 100644 index 0000000..ebe0bdb --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/string-1-n-expected.txt @@ -0,0 +1,9 @@ +CONSOLE MESSAGE: line 1: Uncaught SyntaxError: Unexpected token ILLEGAL +KDE JS Test + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS window.successfullyParsed is undefined. + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/string-2-n-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/string-2-n-expected.txt new file mode 100644 index 0000000..ebe0bdb --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/kde/string-2-n-expected.txt @@ -0,0 +1,9 @@ +CONSOLE MESSAGE: line 1: Uncaught SyntaxError: Unexpected token ILLEGAL +KDE JS Test + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS window.successfullyParsed is undefined. + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/number-toExponential-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/number-toExponential-expected.txt new file mode 100644 index 0000000..da3e6fb --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/number-toExponential-expected.txt @@ -0,0 +1,36 @@ +PASS (0.0).toExponential(4) is "0.0000e+0" +PASS (-0.0).toExponential(4) is "0.0000e+0" +PASS (0.0).toExponential() is "0e+0" +PASS (-0.0).toExponential() is "0e+0" +PASS (123.456).toExponential() is "1.23456e+2" +PASS (123.456).toExponential(0) is "1e+2" +PASS (123.456).toExponential(null) is "1e+2" +PASS (123.456).toExponential(false) is "1e+2" +PASS (123.456).toExponential('foo') is "1e+2" +PASS (123.456).toExponential(nan) is "1e+2" +PASS (123.456).toExponential(1) is "1.2e+2" +PASS (123.456).toExponential(true) is "1.2e+2" +PASS (123.456).toExponential('1') is "1.2e+2" +PASS (123.456).toExponential(2) is "1.23e+2" +PASS (123.456).toExponential(2.9) is "1.23e+2" +PASS (123.456).toExponential(3) is "1.235e+2" +PASS (123.456).toExponential(5) is "1.23456e+2" +PASS (123.456).toExponential(6) is "1.234560e+2" +PASS (123.456).toExponential(20) is "1.23456000000000003070e+2" +FAIL (123.456).toExponential(21) should be 1.234560000000000030695e+2. Threw exception RangeError: toExponential() argument must be between 0 and 20 +FAIL (123.456).toExponential(100) should be 1.2345600000000000306954461848363280296325683593750000000000000000000000000000000000000000000000000000e+2. Threw exception RangeError: toExponential() argument must be between 0 and 20 +PASS (123.456).toExponential(101) threw exception RangeError: toExponential() argument must be between 0 and 20. +PASS (123.456).toExponential(-1) threw exception RangeError: toExponential() argument must be between 0 and 20. +PASS (1234.567).toExponential(posInf) threw exception RangeError: toExponential() argument must be between 0 and 20. +PASS (1234.567).toExponential(negInf) threw exception RangeError: toExponential() argument must be between 0 and 20. +PASS posInf.toExponential() is "Infinity" +PASS negInf.toExponential() is "-Infinity" +PASS nan.toExponential() is "NaN" +PASS (0.01).toExponential() is "1e-2" +PASS (0.1).toExponential() is "1e-1" +PASS (0.9).toExponential() is "9e-1" +PASS (0.9999).toExponential() is "9.999e-1" +PASS (0.9999).toExponential(2) is "1.00e+0" +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/number-tofixed-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/number-tofixed-expected.txt new file mode 100644 index 0000000..e7f2a69 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/number-tofixed-expected.txt @@ -0,0 +1,60 @@ +This test checks a few Number.toFixed cases, including 5307: Number.toFixed does not round 0.5 up and 5308: Number.toFixed does not include leading zero. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS (0).toFixed(0) is '0' +PASS (0.49).toFixed(0) is '0' +PASS (0.5).toFixed(0) is '1' +PASS (0.51).toFixed(0) is '1' +PASS (-0.49).toFixed(0) is '-0' +PASS (-0.5).toFixed(0) is '-1' +PASS (-0.51).toFixed(0) is '-1' +PASS (0).toFixed(1) is '0.0' +PASS (0.449).toFixed(1) is '0.4' +PASS (0.45).toFixed(1) is '0.5' +PASS (0.451).toFixed(1) is '0.5' +PASS (0.5).toFixed(1) is '0.5' +PASS (0.549).toFixed(1) is '0.5' +PASS (0.55).toFixed(1) is '0.6' +PASS (0.551).toFixed(1) is '0.6' +PASS (-0.449).toFixed(1) is '-0.4' +PASS (-0.45).toFixed(1) is '-0.5' +PASS (-0.451).toFixed(1) is '-0.5' +PASS (-0.5).toFixed(1) is '-0.5' +PASS (-0.549).toFixed(1) is '-0.5' +PASS (-0.55).toFixed(1) is '-0.6' +PASS (-0.551).toFixed(1) is '-0.6' +PASS (0.0).toFixed(4) is "0.0000" +PASS (-0.0).toFixed(4) is "0.0000" +PASS (0.0).toFixed() is "0" +PASS (-0.0).toFixed() is "0" +PASS (1234.567).toFixed() is "1235" +PASS (1234.567).toFixed(0) is "1235" +PASS (1234.567).toFixed(null) is "1235" +PASS (1234.567).toFixed(false) is "1235" +PASS (1234.567).toFixed('foo') is "1235" +PASS (1234.567).toFixed(nan) is "1235" +PASS (1234.567).toFixed(1) is "1234.6" +PASS (1234.567).toFixed(true) is "1234.6" +PASS (1234.567).toFixed('1') is "1234.6" +PASS (1234.567).toFixed(2) is "1234.57" +PASS (1234.567).toFixed(2.9) is "1234.57" +PASS (1234.567).toFixed(5) is "1234.56700" +PASS (1234.567).toFixed(20) is "1234.56700000000000727596" +FAIL (1234.567).toFixed(21) should be 1234.567000000000007275958. Threw exception RangeError: toFixed() digits argument must be between 0 and 20 +FAIL (1234.567).toFixed(100) should be 1234.5670000000000072759576141834259033203125000000000000000000000000000000000000000000000000000000000000. Threw exception RangeError: toFixed() digits argument must be between 0 and 20 +PASS (1234.567).toFixed(101) threw exception RangeError: toFixed() digits argument must be between 0 and 20. +FAIL (1234.567).toFixed(-1) should be 1230. Threw exception RangeError: toFixed() digits argument must be between 0 and 20 +FAIL (1234.567).toFixed(-4) should be 0. Threw exception RangeError: toFixed() digits argument must be between 0 and 20 +FAIL (1234.567).toFixed(-5) should be 0. Threw exception RangeError: toFixed() digits argument must be between 0 and 20 +FAIL (1234.567).toFixed(-20) should be 0. Threw exception RangeError: toFixed() digits argument must be between 0 and 20 +PASS (1234.567).toFixed(-21) threw exception RangeError: toFixed() digits argument must be between 0 and 20. +PASS (1234.567).toFixed(posInf) threw exception RangeError: toFixed() digits argument must be between 0 and 20. +PASS (1234.567).toFixed(negInf) threw exception RangeError: toFixed() digits argument must be between 0 and 20. +PASS posInf.toFixed() is "Infinity" +PASS negInf.toFixed() is "-Infinity" +PASS nan.toFixed() is "NaN" +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/number-toprecision-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/number-toprecision-expected.txt new file mode 100644 index 0000000..e05d969 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/number-toprecision-expected.txt @@ -0,0 +1,37 @@ +This test checks a few Number.toPrecision cases, including 15145: (0.999).toPrecision(1) returns incorrect result. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS (0.999).toPrecision(1) is "1" +PASS (0.999).toPrecision(2) is "1.0" +PASS (0.999).toPrecision(3) is "0.999" +PASS (0.0).toPrecision(4) is "0.000" +PASS (-0.0).toPrecision(4) is "0.000" +PASS (0.0).toPrecision() is "0" +PASS (-0.0).toPrecision() is "0" +PASS (1234.567).toPrecision() is "1234.567" +PASS (1234.567).toPrecision(0) threw exception RangeError: toPrecision() argument must be between 1 and 21. +PASS (1234.567).toPrecision(null) threw exception RangeError: toPrecision() argument must be between 1 and 21. +PASS (1234.567).toPrecision(false) threw exception RangeError: toPrecision() argument must be between 1 and 21. +PASS (1234.567).toPrecision('foo') threw exception RangeError: toPrecision() argument must be between 1 and 21. +PASS (1234.567).toPrecision(-1) threw exception RangeError: toPrecision() argument must be between 1 and 21. +PASS (1234.567).toPrecision(1) is "1e+3" +PASS (1234.567).toPrecision(true) is "1e+3" +PASS (1234.567).toPrecision('1') is "1e+3" +PASS (1234.567).toPrecision(2) is "1.2e+3" +PASS (1234.567).toPrecision(2.9) is "1.2e+3" +PASS (1234.567).toPrecision(5) is "1234.6" +PASS (1234.567).toPrecision(21) is "1234.56700000000000728" +FAIL (1234.567).toPrecision(22) should be 1234.567000000000007276. Threw exception RangeError: toPrecision() argument must be between 1 and 21 +FAIL (1234.567).toPrecision(100) should be 1234.567000000000007275957614183425903320312500000000000000000000000000000000000000000000000000000000. Threw exception RangeError: toPrecision() argument must be between 1 and 21 +PASS (1234.567).toPrecision(101) threw exception RangeError: toPrecision() argument must be between 1 and 21. +PASS (1234.567).toPrecision(posInf) threw exception RangeError: toPrecision() argument must be between 1 and 21. +PASS (1234.567).toPrecision(negInf) threw exception RangeError: toPrecision() argument must be between 1 and 21. +PASS (1234.567).toPrecision(nan) threw exception RangeError: toPrecision() argument must be between 1 and 21. +PASS posInf.toPrecision() is "Infinity" +PASS negInf.toPrecision() is "-Infinity" +PASS nan.toPrecision() is "NaN" +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/object-extra-comma-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/object-extra-comma-expected.txt new file mode 100644 index 0000000..4a394e3 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/object-extra-comma-expected.txt @@ -0,0 +1,13 @@ +This test checks some object construction cases, including 5939: final comma in javascript object prevents parsing. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS var foo = { 'bar' : 'YES' }; foo.bar is 'YES' +PASS var foo = { 'bar' : 'YES', }; foo.bar is 'YES' +PASS var foo = { 'bar' : 'YES' , }; foo.bar is 'YES' +PASS var foo = { , 'bar' : 'YES' }; foo.bar threw exception SyntaxError: Unexpected token ,. +PASS var foo = { 'bar' : 'YES',, }; foo.bar threw exception SyntaxError: Unexpected token ,. +PASS successfullyParsed is true + +TEST COMPLETE 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 new file mode 100644 index 0000000..e552795 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/postfix-syntax-expected.txt @@ -0,0 +1,22 @@ +This test checks whether various forms of postincrement expression are allowed. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS x++ is 0 +PASS window.x++ is 1 +PASS window["x"]++ is 2 +PASS (x)++ is 3 +PASS (window.x)++ is 4 +PASS (window["x"])++ is 5 +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 x++++ threw exception SyntaxError: Unexpected token ++. +PASS successfullyParsed is true + +TEST COMPLETE + 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 new file mode 100644 index 0000000..363e581 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/prefix-syntax-expected.txt @@ -0,0 +1,21 @@ +This test checks whether various forms of preincrement expression are allowed. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS ++x is 1 +PASS ++window.x is 2 +PASS ++window["x"] is 3 +PASS ++(x) is 4 +PASS ++(window.x) is 5 +PASS ++(window["x"]) is 6 +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 successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/property-getters-and-setters-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/property-getters-and-setters-expected.txt new file mode 100644 index 0000000..a3eea55 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/property-getters-and-setters-expected.txt @@ -0,0 +1,34 @@ +This performs a number of different tests on JavaScript getters and setters. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +the get set object declaration syntax +PASS o1.b is 8 +PASS o1.b is 11 +__defineGetter__ and __defineSetter__ +PASS o2.b is 8 +PASS o2.b is 11 +Setting a value without having a setter +PASS o3.x = 10; threw exception TypeError: Cannot set property x of #<an Object> which has only a getter. +Getting a value without having a getter +PASS o4.x is undefined. +__lookupGetter__ and __lookupSetter__ +PASS o4.__lookupGetter__('b') is getB +PASS o4.__lookupSetter__('b') is setB +__defineGetter__ and __defineSetter__ with various invalid arguments +PASS o5.__defineSetter__('a', null) threw exception TypeError: Object.prototype.__defineSetter__: Expecting function. +PASS o5.__defineSetter__('a', o5) threw exception TypeError: Object.prototype.__defineSetter__: Expecting function. +PASS o5.__defineGetter__('a', null) threw exception TypeError: Object.prototype.__defineGetter__: Expecting function. +PASS o5.__defineGetter__('a', o5) threw exception TypeError: Object.prototype.__defineGetter__: Expecting function. +setters and getters with exceptions +PASS x = o6.x threw exception Exception in get. +PASS x is 0 +PASS o6.x = 42 threw exception Exception in set. +Defining a setter should also define a getter for the same property which returns undefined. Thus, a getter defined on the prototype should not be called. +PASS o7.x is undefined. +If an object has a property and its prototype has a setter function for that property, then setting the property should set the property directly and not call the setter function. +PASS o8.numSets is 0 +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/recursion-limit-equal-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/recursion-limit-equal-expected.txt new file mode 100644 index 0000000..95b439d --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/recursion-limit-equal-expected.txt @@ -0,0 +1,11 @@ +Uncaught RangeError: Maximum call stack size exceeded +Tests hitting the recursion limit with equality comparisons. At one point this crashed due to lack of exception checking inside the engine. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +If the test did not crash, it has passed. + +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/regexp-compile-crash-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/regexp-compile-crash-expected.txt new file mode 100644 index 0000000..401c999 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/regexp-compile-crash-expected.txt @@ -0,0 +1,16 @@ +Test regexp compiling to make sure it doens't crash like bug 16127 + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS !!/\)[;s]+/ is true +PASS /[/ threw exception SyntaxError: Invalid regular expression: missing /. +PASS /[a/ threw exception SyntaxError: Invalid regular expression: missing /. +PASS /[-/ threw exception SyntaxError: Invalid regular expression: missing /. +PASS !!/(a)/ is true +PASS !!/(a){1,3}/ is true +PASS No crashes, yay! +PASS successfullyParsed is true + +TEST COMPLETE + diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/regexp-compile-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/regexp-compile-expected.txt new file mode 100644 index 0000000..f43f4d1 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/regexp-compile-expected.txt @@ -0,0 +1,28 @@ +Test RegExp.compile method. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS re.toString() is '/a/i' +PASS re.multiline is false +PASS re.ignoreCase is false +PASS re.global is false +PASS re.test('A') is false +PASS re.toString() is '/a/' +PASS re.toString() is '/b/g' +PASS re.toString() is '/c/' +PASS re.ignoreCase is true +PASS re.test('C') is true +PASS re.toString() is '/c/i' +PASS re.compile(new RegExp('c'), 'i'); threw exception TypeError: Cannot supply flags when constructing one RegExp from another. +PASS re.toString() is '/c/i' +PASS re.compile(new RegExp('+')); threw exception SyntaxError: Invalid regular expression: /+/: Nothing to repeat. +PASS re.toString() is '/undefined/' +PASS re.toString() is '/null/' +FAIL re.toString() should be //. Was /(?:)/. +PASS re.toString() is '/z/' +PASS re.lastIndex is 0 +PASS re.lastIndex is 1 +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/regexp-range-out-of-order-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/regexp-range-out-of-order-expected.txt new file mode 100644 index 0000000..a72c8f9 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/regexp-range-out-of-order-expected.txt @@ -0,0 +1,10 @@ +Test for bug 16129: REGRESSION (r27761-r27811): malloc error while visiting http://mysit.es (crashes release build). + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS /^[s{-.[]()]$/ threw exception SyntaxError: Invalid regular expression: /^[s{-.[]()]$/: Range out of order in character class. +PASS successfullyParsed is true + +TEST COMPLETE + diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/reserved-words-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/reserved-words-expected.txt new file mode 100644 index 0000000..4296317 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/reserved-words-expected.txt @@ -0,0 +1,71 @@ +This file checks which ECMAScript 3 keywords are treated as reserved words. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +SHOULD BE RESERVED: +PASS isReserved('break') is true +PASS isReserved('case') is true +PASS isReserved('catch') is true +FAIL isReserved('class') should be true. Was false. +PASS isReserved('const') is true +PASS isReserved('continue') is true +PASS isReserved('debugger') is true +PASS isReserved('default') is true +PASS isReserved('delete') is true +PASS isReserved('do') is true +PASS isReserved('else') is true +FAIL isReserved('enum') should be true. Was false. +FAIL isReserved('export') should be true. Was false. +FAIL isReserved('extends') should be true. Was false. +PASS isReserved('false') is true +PASS isReserved('finally') is true +PASS isReserved('for') is true +PASS isReserved('function') is true +PASS isReserved('if') is true +FAIL isReserved('import') should be true. Was false. +PASS isReserved('in') is true +PASS isReserved('instanceof') is true +PASS isReserved('new') is true +PASS isReserved('null') is true +PASS isReserved('return') is true +FAIL isReserved('super') should be true. Was false. +PASS isReserved('switch') is true +PASS isReserved('this') is true +PASS isReserved('throw') is true +PASS isReserved('true') is true +PASS isReserved('try') is true +PASS isReserved('typeof') is true +PASS isReserved('var') is true +PASS isReserved('void') is true +PASS isReserved('while') is true +PASS isReserved('with') is true + +SHOULD NOT BE RESERVED: +PASS isReserved('abstract') is false +PASS isReserved('boolean') is false +PASS isReserved('byte') is false +PASS isReserved('char') is false +PASS isReserved('double') is false +PASS isReserved('final') is false +PASS isReserved('float') is false +PASS isReserved('goto') is false +PASS isReserved('implements') is false +PASS isReserved('int') is false +PASS isReserved('interface') is false +PASS isReserved('long') is false +FAIL isReserved('native') should be false. Was true. +PASS isReserved('package') is false +PASS isReserved('private') is false +PASS isReserved('protected') is false +PASS isReserved('public') is false +PASS isReserved('short') is false +PASS isReserved('static') is false +PASS isReserved('synchronized') is false +PASS isReserved('throws') is false +PASS isReserved('transient') is false +PASS isReserved('volatile') is false + +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/string-capitalization-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/string-capitalization-expected.txt new file mode 100644 index 0000000..2c9f5c2 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/string-capitalization-expected.txt @@ -0,0 +1,17 @@ +This test checks that toLowerCase and toUpperCase handle certain non-trivial cases correctly. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +FAIL String("A𐐀").toLowerCase() should be a𐐨. Was a𐐀. +FAIL String("a𐐨").toUpperCase() should be A𐐀. Was A𐐨. +PASS String("ΚΟΣΜΟΣ ΚΟΣΜΟΣ").toLowerCase() is "κοσμος κοσμος" +PASS String("ß").toUpperCase() is "SS" +PASS String("ʼn").toUpperCase() is "ʼN" +PASS String("ǰ").toUpperCase() is "J̌" +PASS String("ffi").toUpperCase() is "FFI" +PASS String("FFI").toLowerCase() is "ffi" +PASS String("IJ").toLowerCase() is "ij" +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/switch-behaviour-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/switch-behaviour-expected.txt new file mode 100644 index 0000000..899c624 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/switch-behaviour-expected.txt @@ -0,0 +1,100 @@ +This test covers the correctness and behaviour of switch statements. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS characterSwitch('') is "" +PASS characterSwitch('A') is "A" +PASS characterSwitch('a') is "a" +PASS characterSwitch('1') is "1" +PASS characterSwitch('-1') is "default" +PASS characterSwitch('B') is "B" +PASS characterSwitch('') is "default" +PASS characterSwitch({toString: function(){return 'B'}}) is "default" +PASS characterSwitch(0) is "default" +PASS characterSwitch(1) is "default" +PASS characterSwitch(-1) is "default" +PASS characterSwitch(-1000000000) is "default" +PASS characterSwitch(1000000000) is "default" +PASS characterSwitch({}) is "default" +PASS sparseCharacterSwitch('') is "" +PASS sparseCharacterSwitch('A') is "A" +PASS sparseCharacterSwitch('a') is "a" +PASS sparseCharacterSwitch('1') is "1" +PASS sparseCharacterSwitch('-1') is "default" +PASS sparseCharacterSwitch('B') is "B" +PASS sparseCharacterSwitch('') is "" +PASS sparseCharacterSwitch({toString: function(){return 'B'}}) is "default" +PASS sparseCharacterSwitch(0) is "default" +PASS sparseCharacterSwitch(1) is "default" +PASS sparseCharacterSwitch(-1) is "default" +PASS sparseCharacterSwitch(-1000000000) is "default" +PASS sparseCharacterSwitch(1000000000) is "default" +PASS sparseCharacterSwitch({}) is "default" +PASS stringSwitch('') is "" +PASS stringSwitch('A') is "A" +PASS stringSwitch('a') is "a" +PASS stringSwitch('1') is "1" +PASS stringSwitch('-1') is "-1" +PASS stringSwitch('B') is "B" +PASS stringSwitch('') is "" +PASS stringSwitch('some string') is "some string" +PASS stringSwitch({toString: function(){return 'some string'}}) is "default" +PASS stringSwitch('s') is "default" +PASS stringSwitch(0) is "default" +PASS stringSwitch(1) is "default" +PASS stringSwitch(-1) is "default" +PASS stringSwitch(-1000000000) is "default" +PASS stringSwitch(1000000000) is "default" +PASS stringSwitch({}) is "default" +PASS numberSwitch('') is "default" +PASS numberSwitch('A') is "default" +PASS numberSwitch('a') is "default" +PASS numberSwitch('1') is "default" +PASS numberSwitch('-1') is "default" +PASS numberSwitch('B') is "default" +PASS numberSwitch('') is "default" +PASS numberSwitch('some string') is "default" +PASS numberSwitch({valueOf: function(){return 0}}) is "default" +PASS numberSwitch('s') is "default" +PASS numberSwitch(0) is 0 +PASS numberSwitch(1) is 1 +PASS numberSwitch(-1) is -1 +PASS numberSwitch(-1000000000) is "default" +PASS numberSwitch(1000000000) is "default" +PASS numberSwitch({}) is "default" +PASS sparseNumberSwitch('') is "default" +PASS sparseNumberSwitch('A') is "default" +PASS sparseNumberSwitch('a') is "default" +PASS sparseNumberSwitch('1') is "default" +PASS sparseNumberSwitch('-1') is "default" +PASS sparseNumberSwitch('B') is "default" +PASS sparseNumberSwitch('') is "default" +PASS sparseNumberSwitch('some string') is "default" +PASS sparseNumberSwitch({valueOf: function(){return 0}}) is "default" +PASS sparseNumberSwitch('s') is "default" +PASS sparseNumberSwitch(0) is 0 +PASS sparseNumberSwitch(1) is 1 +PASS sparseNumberSwitch(-1) is -1 +PASS sparseNumberSwitch(-1000000000) is -1000000000 +PASS sparseNumberSwitch(1000000000) is 1000000000 +PASS sparseNumberSwitch({}) is "default" +PASS generalSwitch('') is "" +PASS generalSwitch('A') is "A" +PASS generalSwitch('a') is "a" +PASS generalSwitch('1') is "1" +PASS generalSwitch('-1') is "-1" +PASS generalSwitch('B') is "B" +PASS generalSwitch('') is "" +PASS generalSwitch('some string') is "some string" +PASS generalSwitch({valueOf: function(){return 0}}) is "default" +PASS generalSwitch('s') is "default" +PASS generalSwitch(0) is 0 +PASS generalSwitch(1) is 1 +PASS generalSwitch(-1) is -1 +PASS generalSwitch(-1000000000) is -1000000000 +PASS generalSwitch(1000000000) is 1000000000 +PASS generalSwitch({}) is "default" +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/toString-and-valueOf-override-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/toString-and-valueOf-override-expected.txt new file mode 100644 index 0000000..fe54825 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/toString-and-valueOf-override-expected.txt @@ -0,0 +1,403 @@ +Unmodified span +span : [object HTMLElement] +[span] : [object HTMLElement] +String(span) : [object HTMLElement] +String([span]) : [object HTMLElement] +span.toString() : [object HTMLElement] +[span].toString() : [object HTMLElement] +span.valueOf() : [object HTMLElement] +[span].valueOf() : [object HTMLElement] + +span with modified toString and valueOf +span : valueOf +[span] : toString +String(span) : toString +String([span]) : toString +span.toString() : toString +[span].toString() : toString +span.valueOf() : valueOf +[span].valueOf() : toString + +span with modified toString that returns an Object +span : valueOf +[span] : valueOf +String(span) : valueOf +String([span]) : valueOf +span.toString() : [object Object] +[span].toString() : valueOf +span.valueOf() : valueOf +[span].valueOf() : valueOf + +span with modified valueOf that returns an Object +span : toString +[span] : toString +String(span) : toString +String([span]) : toString +span.toString() : toString +[span].toString() : toString +span.valueOf() : [object Object] +[span].valueOf() : toString + +span with modified toString and valueOf that returns an Object +TypeError: Cannot convert object to primitive value +TypeError: Cannot convert object to primitive value +TypeError: Cannot convert object to primitive value +TypeError: Cannot convert object to primitive value +span.toString() : [object Object] +TypeError: Cannot convert object to primitive value +span.valueOf() : [object Object] +TypeError: Cannot convert object to primitive value + +span with modified toString that throws an exception +span : valueOf +Exception +Exception +Exception +Exception +Exception +span.valueOf() : valueOf +Exception + +span with modified valueOf that throws an exception +Exception +[span] : toString +String(span) : toString +String([span]) : toString +span.toString() : toString +[span].toString() : toString +Exception +[span].valueOf() : toString + +span with modified toString an valueOf that throw exceptions +Exception +Exception +Exception +Exception +Exception +Exception +Exception +Exception + + +Unmodified window +window : [object global] +[window] : [object global] +String(window) : [object global] +String([window]) : [object global] +window.toString() : [object global] +[window].toString() : [object global] +window.valueOf() : [object global] +[window].valueOf() : [object global] + +window with modified toString and valueOf +window : valueOf +[window] : toString +String(window) : toString +String([window]) : toString +window.toString() : toString +[window].toString() : toString +window.valueOf() : valueOf +[window].valueOf() : toString + +window with modified toString that returns an Object +window : valueOf +[window] : valueOf +String(window) : valueOf +String([window]) : valueOf +window.toString() : [object Object] +[window].toString() : valueOf +window.valueOf() : valueOf +[window].valueOf() : valueOf + +window with modified valueOf that returns an Object +window : toString +[window] : toString +String(window) : toString +String([window]) : toString +window.toString() : toString +[window].toString() : toString +window.valueOf() : [object Object] +[window].valueOf() : toString + +window with modified toString and valueOf that returns an Object +TypeError: Cannot convert object to primitive value +TypeError: Cannot convert object to primitive value +TypeError: Cannot convert object to primitive value +TypeError: Cannot convert object to primitive value +window.toString() : [object Object] +TypeError: Cannot convert object to primitive value +window.valueOf() : [object Object] +TypeError: Cannot convert object to primitive value + +window with modified toString that throws an exception +window : valueOf +Exception +Exception +Exception +Exception +Exception +window.valueOf() : valueOf +Exception + +window with modified valueOf that throws an exception +Exception +[window] : toString +String(window) : toString +String([window]) : toString +window.toString() : toString +[window].toString() : toString +Exception +[window].valueOf() : toString + +window with modified toString an valueOf that throw exceptions +Exception +Exception +Exception +Exception +Exception +Exception +Exception +Exception + + +Unmodified Navigator +Navigator : [object Navigator] +[Navigator] : [object Navigator] +String(Navigator) : [object Navigator] +String([Navigator]) : [object Navigator] +Navigator.toString() : [object Navigator] +[Navigator].toString() : [object Navigator] +Navigator.valueOf() : [object Navigator] +[Navigator].valueOf() : [object Navigator] + +Navigator with modified toString and valueOf +Navigator : valueOf +[Navigator] : toString +String(Navigator) : toString +String([Navigator]) : toString +Navigator.toString() : toString +[Navigator].toString() : toString +Navigator.valueOf() : valueOf +[Navigator].valueOf() : toString + +Navigator with modified toString that returns an Object +Navigator : valueOf +[Navigator] : valueOf +String(Navigator) : valueOf +String([Navigator]) : valueOf +Navigator.toString() : [object Object] +[Navigator].toString() : valueOf +Navigator.valueOf() : valueOf +[Navigator].valueOf() : valueOf + +Navigator with modified valueOf that returns an Object +Navigator : toString +[Navigator] : toString +String(Navigator) : toString +String([Navigator]) : toString +Navigator.toString() : toString +[Navigator].toString() : toString +Navigator.valueOf() : [object Object] +[Navigator].valueOf() : toString + +Navigator with modified toString and valueOf that returns an Object +TypeError: Cannot convert object to primitive value +TypeError: Cannot convert object to primitive value +TypeError: Cannot convert object to primitive value +TypeError: Cannot convert object to primitive value +Navigator.toString() : [object Object] +TypeError: Cannot convert object to primitive value +Navigator.valueOf() : [object Object] +TypeError: Cannot convert object to primitive value + +Navigator with modified toString that throws an exception +Navigator : valueOf +Exception +Exception +Exception +Exception +Exception +Navigator.valueOf() : valueOf +Exception + +Navigator with modified valueOf that throws an exception +Exception +[Navigator] : toString +String(Navigator) : toString +String([Navigator]) : toString +Navigator.toString() : toString +[Navigator].toString() : toString +Exception +[Navigator].valueOf() : toString + +Navigator with modified toString an valueOf that throw exceptions +Exception +Exception +Exception +Exception +Exception +Exception +Exception +Exception + + +Unmodified History +History : [object History] +[History] : [object History] +String(History) : [object History] +String([History]) : [object History] +History.toString() : [object History] +[History].toString() : [object History] +History.valueOf() : [object History] +[History].valueOf() : [object History] + +History with modified toString and valueOf +History : valueOf +[History] : toString +String(History) : toString +String([History]) : toString +History.toString() : toString +[History].toString() : toString +History.valueOf() : valueOf +[History].valueOf() : toString + +History with modified toString that returns an Object +History : valueOf +[History] : valueOf +String(History) : valueOf +String([History]) : valueOf +History.toString() : [object Object] +[History].toString() : valueOf +History.valueOf() : valueOf +[History].valueOf() : valueOf + +History with modified valueOf that returns an Object +History : toString +[History] : toString +String(History) : toString +String([History]) : toString +History.toString() : toString +[History].toString() : toString +History.valueOf() : [object Object] +[History].valueOf() : toString + +History with modified toString and valueOf that returns an Object +TypeError: Cannot convert object to primitive value +TypeError: Cannot convert object to primitive value +TypeError: Cannot convert object to primitive value +TypeError: Cannot convert object to primitive value +History.toString() : [object Object] +TypeError: Cannot convert object to primitive value +History.valueOf() : [object Object] +TypeError: Cannot convert object to primitive value + +History with modified toString that throws an exception +History : valueOf +Exception +Exception +Exception +Exception +Exception +History.valueOf() : valueOf +Exception + +History with modified valueOf that throws an exception +Exception +[History] : toString +String(History) : toString +String([History]) : toString +History.toString() : toString +[History].toString() : toString +Exception +[History].valueOf() : toString + +History with modified toString an valueOf that throw exceptions +Exception +Exception +Exception +Exception +Exception +Exception +Exception +Exception + + +Unmodified Selection +Selection : +[Selection] : +String(Selection) : +String([Selection]) : +Selection.toString() : +[Selection].toString() : +Selection.valueOf() : +[Selection].valueOf() : + +Selection with modified toString and valueOf +Selection : valueOf +[Selection] : toString +String(Selection) : toString +String([Selection]) : toString +Selection.toString() : toString +[Selection].toString() : toString +Selection.valueOf() : valueOf +[Selection].valueOf() : toString + +Selection with modified toString that returns an Object +Selection : valueOf +[Selection] : valueOf +String(Selection) : valueOf +String([Selection]) : valueOf +Selection.toString() : [object Object] +[Selection].toString() : valueOf +Selection.valueOf() : valueOf +[Selection].valueOf() : valueOf + +Selection with modified valueOf that returns an Object +Selection : toString +[Selection] : toString +String(Selection) : toString +String([Selection]) : toString +Selection.toString() : toString +[Selection].toString() : toString +Selection.valueOf() : [object Object] +[Selection].valueOf() : toString + +Selection with modified toString and valueOf that returns an Object +TypeError: Cannot convert object to primitive value +TypeError: Cannot convert object to primitive value +TypeError: Cannot convert object to primitive value +TypeError: Cannot convert object to primitive value +Selection.toString() : [object Object] +TypeError: Cannot convert object to primitive value +Selection.valueOf() : [object Object] +TypeError: Cannot convert object to primitive value + +Selection with modified toString that throws an exception +Selection : valueOf +Exception +Exception +Exception +Exception +Exception +Selection.valueOf() : valueOf +Exception + +Selection with modified valueOf that throws an exception +Exception +[Selection] : toString +String(Selection) : toString +String([Selection]) : toString +Selection.toString() : toString +[Selection].toString() : toString +Exception +[Selection].valueOf() : toString + +Selection with modified toString an valueOf that throw exceptions +Exception +Exception +Exception +Exception +Exception +Exception +Exception +Exception 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 new file mode 100644 index 0000000..5c2c64e --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/toString-prefix-postfix-preserve-parens-expected.txt @@ -0,0 +1,4 @@ +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 + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/toString-stack-overflow-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/toString-stack-overflow-expected.txt new file mode 100644 index 0000000..d167b23 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/js/toString-stack-overflow-expected.txt @@ -0,0 +1,13 @@ +This test checks for a regression against http://bugzilla.opendarwin.org/show_bug.cgi?id=3743: Incorrect error message given for certain calls. + +The test confirms that the correct exception is thrown in the event of a stack overflow during a call to Array.toString. + +It is possible that this may need to be updated if WebKit gets an improvement to its JavaScript stack support. Either through increasing the depth of the recursion, or through some other mechanism. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS ary.toString() threw exception RangeError: Maximum call stack size exceeded. +PASS successfullyParsed is true + +TEST COMPLETE diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/loader/window-clearing-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/loader/window-clearing-expected.txt new file mode 100644 index 0000000..c8c6e71 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/loader/window-clearing-expected.txt @@ -0,0 +1,11 @@ +This test checks to ensure that the window object is cleared during a navigation. + +If the test passes, you will see only PASS messages below. + +PASS: element 0 in the window's prototype chain was cleared + +PASS: element 1 in the window's prototype chain was cleared + +PASS: element 2 in the window's prototype chain was cleared + +PASS: element 3 in the window's prototype chain was cleared diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/loader/xmlhttprequest-missing-file-exception-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/loader/xmlhttprequest-missing-file-exception-expected.txt new file mode 100644 index 0000000..d790864 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/loader/xmlhttprequest-missing-file-exception-expected.txt @@ -0,0 +1,8 @@ +This test checks for rdar://problem/4962298 REGRESSION: Synchronous XHR for missing local file throws exception -- breaks Wikipedia widget + +PASS: No exception. +readyState: 4 (number) +responseText: (string) +responseXML: null (object) +statusText: (string) + diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/parser/entity-end-script-tag-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/parser/entity-end-script-tag-expected.txt new file mode 100644 index 0000000..8df66ac --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/parser/entity-end-script-tag-expected.txt @@ -0,0 +1,11 @@ +CONSOLE MESSAGE: line 8: Uncaught SyntaxError: Unexpected token & +Test parsing of entity-escaped </script> tag for Bug 7931: Escaped elements within a textarea block can cause the textarea box to be closed prematurely + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS document.getElementById("myscript").textContent is expectedResult +PASS successfullyParsed is true + +TEST COMPLETE + diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/parser/external-entities-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/parser/external-entities-expected.txt new file mode 100644 index 0000000..7e5115b --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/parser/external-entities-expected.txt @@ -0,0 +1,6 @@ +This page contains the following errors: + +error on line 9 at column 13: Entity 'message' not defined +Below is a rendering of the page up to the first error. + +This should be the only line on this page. You should see a parse error above. diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/parser/script-tag-with-trailing-slash-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/parser/script-tag-with-trailing-slash-expected.txt new file mode 100644 index 0000000..f8c83d7 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/parser/script-tag-with-trailing-slash-expected.txt @@ -0,0 +1,2 @@ +CONSOLE MESSAGE: line 1: Uncaught SyntaxError: Unexpected token < +You should not see the text "inside" the following script tag: This is the text inside the script tag. diff --git a/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/parser/xhtml-alternate-entities-expected.txt b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/parser/xhtml-alternate-entities-expected.txt new file mode 100644 index 0000000..73555e1 --- /dev/null +++ b/webkit/data/layout_tests/platform/chromium-mac/LayoutTests/fast/parser/xhtml-alternate-entities-expected.txt @@ -0,0 +1,26 @@ +layer at (0,0) size 800x600 + RenderView at (0,0) size 800x600 +layer at (0,0) size 800x184 + RenderBlock {html} at (0,0) size 800x184 + RenderBlock {parsererror} at (16,16) size 768x134 [bgcolor=#FFDDDD] [border: (2px solid #CC7777)] + RenderBlock {h3} at (18,20) size 732x22 + RenderText {#text} at (0,0) size 324x22 + text run at (0,0) width 324: "This page contains the following errors:" + RenderBlock {div} at (18,60) size 732x14 + RenderText {#text} at (0,0) size 385x14 + text run at (0,0) width 385: "error on line 4 at column 13: Entity 'fnof' not defined" + text run at (385,0) width 0: " " + RenderBlock {h3} at (18,92) size 732x22 + RenderText {#text} at (0,0) size 429x22 + text run at (0,0) width 429: "Below is a rendering of the page up to the first error." + RenderBlock (anonymous) at (0,166) size 800x18 + RenderInline {h1} at (0,0) size 0x0 + RenderText {#text} at (0,0) size 0x0 + RenderText {#text} at (0,0) size 0x0 + RenderText {#text} at (0,0) size 0x0 + RenderInline {p} at (0,0) size 489x18 + RenderInline {font} at (0,0) size 489x18 + RenderText {#text} at (0,0) size 489x18 + text run at (0,0) width 263: "This should be the only line on this page. " + text run at (263,0) width 226: "You should see a parse error above." + RenderText {#text} at (0,0) size 0x0 diff --git a/webkit/tools/layout_tests/test_lists/tests_fixable.txt b/webkit/tools/layout_tests/test_lists/tests_fixable.txt index 809fd38..76c6ef1 100644 --- a/webkit/tools/layout_tests/test_lists/tests_fixable.txt +++ b/webkit/tools/layout_tests/test_lists/tests_fixable.txt @@ -945,9 +945,15 @@ LINUX MAC : LayoutTests/fast/js/date-big-setdate.html = FAIL // Linux pixeltest failure: Form control incorrect size LINUX : LayoutTests/fast/forms/listbox-clip.html = FAIL - // Linux pixeltest failure: Failing to apply style LINUX : LayoutTests/fast/forms/select-style.html = FAIL +// Linux pixeltest failure: Failed to clip the scrollbars +LINUX : LayoutTests/fast/overflow/scrollRevealButton.html = FAIL +// Linux pixeltest failure: It appears that the form controls are overlapping +LINUX : LayoutTests/fast/replaced/width100percent-menulist.html = FAIL +// Linux pixeltest failure: The text suggests that the radios should not +// overlap, but it's very close and quite different from the Windows version +LINUX : LayoutTests/fast/replaced/width100percent-radio.html = FAIL // Internationalization / complex characters / etc LINUX : LayoutTests/fast/lists/w3-list-styles.html = FAIL @@ -1382,6 +1388,14 @@ MAC : LayoutTests/fast/forms/search-display-none-cancel-button.html = FAIL MAC : LayoutTests/fast/forms/tabbing-input-iframe.html = FAIL MAC : LayoutTests/fast/forms/textfield-drag-into-disabled.html = FAIL MAC : LayoutTests/fast/forms/textfield-overflow.html = FAIL +MAC : LayoutTests/fast/lists/dynamic-marker-crash.html = FAIL +MAC : LayoutTests/fast/repaint/renderer-destruction-by-invalidateSelection-crash.html = FAIL +MAC : LayoutTests/fast/repaint/subtree-root-skipped.html = FAIL +MAC : LayoutTests/fast/replaced/replaced-breaking-mixture.html = FAIL +MAC : LayoutTests/fast/replaced/width100percent-textfield.html = FAIL +MAC : LayoutTests/fast/table/colspanMinWidth.html = FAIL +MAC : LayoutTests/fast/table/spanOverlapRepaint.html = FAIL +MAC : LayoutTests/fast/text/textIteratorNilRenderer.html = FAIL // we're waiting on upstreaming a change to how textarea padding works. rather // than rebasing, we'll wait for the upstream (which ojan said should happen @@ -1403,6 +1417,8 @@ MAC : LayoutTests/fast/forms/textarea-scroll-height.html = FAIL MAC : LayoutTests/fast/forms/textarea-scrollbar.html = FAIL MAC : LayoutTests/fast/forms/textarea-scrolled-type.html = FAIL MAC : LayoutTests/fast/forms/textarea-setinnerhtml.html = FAIL +MAC : LayoutTests/fast/parser/entity-comment-in-textarea.html = FAIL +MAC : LayoutTests/fast/table/003.html = FAIL // text input garbage MAC : LayoutTests/editing/inserting/typing-tab-designmode.html = FAIL @@ -1448,19 +1464,31 @@ MAC : LayoutTests/fast/forms/listbox-selection.html = FAIL MAC : LayoutTests/editing/selection/5109817.html = FAIL MAC : LayoutTests/editing/selection/5354455-2.html = FAIL -// missing resources (images or strings) +// missing default resources (images or strings) MAC : LayoutTests/editing/execCommand/insertImage.html = FAIL MAC : LayoutTests/fast/dom/inner-text.html = FAIL MAC : LayoutTests/fast/forms/button-default-title.html = FAIL MAC : LayoutTests/fast/forms/file-input-direction.html = FAIL MAC : LayoutTests/fast/forms/file-input-disabled.html = FAIL MAC : LayoutTests/fast/forms/hidden-input-file.html = FAIL +MAC : LayoutTests/fast/lists/inlineBoxWrapperNullCheck.html = FAIL +MAC : LayoutTests/fast/loader/start-load-in-unload.html = FAIL // incorrect layout MAC : LayoutTests/fast/css/font-weight-1.html = FAIL MAC : LayoutTests/fast/encoding/utf-16-big-endian.html = FAIL MAC : LayoutTests/fast/encoding/utf-16-little-endian.html = FAIL +// not loading local files +MAC : LayoutTests/fast/loader/local-CSS-from-local.html = FAIL +MAC : LayoutTests/fast/loader/local-JavaScript-from-local.html = FAIL +MAC : LayoutTests/fast/loader/local-image-from-local.html = FAIL + +// parser issues (guess: may be related to missing resources?) +MAC : LayoutTests/fast/parser/entities-in-attributes.xhtml = FAIL +MAC : LayoutTests/fast/parser/entities-in-xhtml.xhtml = FAIL +MAC : LayoutTests/fast/parser/entity-ignorable-whitespace.xhtml = FAIL + // unknown MAC : LayoutTests/fast/dom/SelectorAPI/resig-SelectorsAPI-test.xhtml = FAIL @@ -1482,69 +1510,6 @@ MAC : LayoutTests/fast/dom/Window/new-window-opener.html = CRASH // should remove its baseline and convert this to all platforms. MAC : LayoutTests/fast/dynamic/insert-before-table-part-in-continuation.html = FAIL -MAC : LayoutTests/fast/js/cyclic-proto.html = FAIL -MAC : LayoutTests/fast/js/cyclic-prototypes.html = FAIL -MAC : LayoutTests/fast/js/deep-recursion-test.html = FAIL -MAC : LayoutTests/fast/js/exception-codegen-crash.html = FAIL -MAC : LayoutTests/fast/js/function-toString-object-literals.html = FAIL -MAC : LayoutTests/fast/js/invalid-syntax-for-function.html = FAIL -MAC : LayoutTests/fast/js/kde/Number.html = FAIL -MAC : LayoutTests/fast/js/kde/RegExp.html = FAIL -MAC : LayoutTests/fast/js/kde/StringObject.html = FAIL -MAC : LayoutTests/fast/js/kde/encode_decode_uri.html = FAIL -MAC : LayoutTests/fast/js/kde/garbage-n.html = FAIL -MAC : LayoutTests/fast/js/kde/lval-exceptions.html = FAIL -MAC : LayoutTests/fast/js/kde/parse.html = FAIL -MAC : LayoutTests/fast/js/kde/string-1-n.html = FAIL -MAC : LayoutTests/fast/js/kde/string-2-n.html = FAIL -MAC : LayoutTests/fast/js/number-toExponential.html = FAIL -MAC : LayoutTests/fast/js/number-tofixed.html = FAIL -MAC : LayoutTests/fast/js/number-toprecision.html = FAIL -MAC : LayoutTests/fast/js/object-extra-comma.html = FAIL -MAC : LayoutTests/fast/js/postfix-syntax.html = FAIL -MAC : LayoutTests/fast/js/prefix-syntax.html = FAIL -MAC : LayoutTests/fast/js/property-getters-and-setters.html = FAIL -MAC : LayoutTests/fast/js/recursion-limit-equal.html = FAIL -MAC : LayoutTests/fast/js/regexp-compile-crash.html = FAIL -MAC : LayoutTests/fast/js/regexp-compile.html = FAIL -MAC : LayoutTests/fast/js/regexp-range-out-of-order.html = FAIL -MAC : LayoutTests/fast/js/reserved-words.html = FAIL -MAC : LayoutTests/fast/js/string-capitalization.html = FAIL -MAC : LayoutTests/fast/js/switch-behaviour.html = FAIL -MAC : LayoutTests/fast/js/toString-and-valueOf-override.html = FAIL -MAC : LayoutTests/fast/js/toString-prefix-postfix-preserve-parens.html = FAIL -MAC : LayoutTests/fast/js/toString-stack-overflow.html = FAIL -MAC : LayoutTests/fast/lists/dynamic-marker-crash.html = FAIL -MAC : LayoutTests/fast/lists/inlineBoxWrapperNullCheck.html = FAIL -MAC : LayoutTests/fast/loader/local-CSS-from-local.html = FAIL -MAC : LayoutTests/fast/loader/local-JavaScript-from-local.html = FAIL -MAC : LayoutTests/fast/loader/local-image-from-local.html = FAIL -MAC : LayoutTests/fast/loader/start-load-in-unload.html = FAIL -MAC : LayoutTests/fast/loader/window-clearing.html = FAIL -MAC : LayoutTests/fast/loader/xmlhttprequest-missing-file-exception.html = FAIL -// Linux pixeltest failure: Failed to clip the scrollbars -LINUX : LayoutTests/fast/overflow/scrollRevealButton.html = FAIL -MAC : LayoutTests/fast/parser/entities-in-attributes.xhtml = FAIL -MAC : LayoutTests/fast/parser/entities-in-xhtml.xhtml = FAIL -MAC : LayoutTests/fast/parser/entity-comment-in-textarea.html = FAIL -MAC : LayoutTests/fast/parser/entity-end-script-tag.html = FAIL -MAC : LayoutTests/fast/parser/entity-ignorable-whitespace.xhtml = FAIL -MAC : LayoutTests/fast/parser/external-entities.xml = FAIL -MAC : LayoutTests/fast/parser/script-tag-with-trailing-slash.html = FAIL -MAC : LayoutTests/fast/parser/xhtml-alternate-entities.xml = FAIL -MAC : LayoutTests/fast/repaint/renderer-destruction-by-invalidateSelection-crash.html = FAIL -MAC : LayoutTests/fast/repaint/subtree-root-skipped.html = FAIL -MAC : LayoutTests/fast/replaced/replaced-breaking-mixture.html = FAIL -// Linux pixeltest failure: It appears that the form controls are overlapping -LINUX : LayoutTests/fast/replaced/width100percent-menulist.html = FAIL -// Linux pixeltest failure: The text suggests that the radios should not -// overlap, but it's very close and quite different from the Windows version -LINUX : LayoutTests/fast/replaced/width100percent-radio.html = FAIL -MAC : LayoutTests/fast/replaced/width100percent-textfield.html = FAIL -MAC : LayoutTests/fast/table/003.html = FAIL -MAC : LayoutTests/fast/table/colspanMinWidth.html = FAIL -MAC : LayoutTests/fast/table/spanOverlapRepaint.html = FAIL -MAC : LayoutTests/fast/text/textIteratorNilRenderer.html = FAIL MAC : LayoutTests/fast/tokenizer/002.html = FAIL MAC : LayoutTests/fast/tokenizer/external-script-document-write_2.html = FAIL MAC : LayoutTests/fast/tokenizer/script_extra_close.html = FAIL @@ -1674,9 +1639,6 @@ MAC : LayoutTests/fast/dom/Window/window-open-pending-url.html = FAIL MAC : LayoutTests/fast/forms/input-readonly-autoscroll.html = FAIL MAC : LayoutTests/fast/forms/input-type-text-min-width.html = FAIL MAC : LayoutTests/fast/forms/placeholder-set-attribute.html = FAIL -MAC : LayoutTests/fast/js/const.html = FAIL -MAC : LayoutTests/fast/js/exception-sequencing-binops2.html = FAIL -MAC : LayoutTests/fast/js/function-toString-parentheses.html = FAIL MAC : LayoutTests/http/tests/navigation/post-goback2.html = FAIL MAC : LayoutTests/http/tests/navigation/postredirect-goback2.html = FAIL MAC : LayoutTests/http/tests/navigation/redirect302-goback.html = FAIL |