Diff
Modified: trunk/LayoutTests/ChangeLog (159062 => 159063)
--- trunk/LayoutTests/ChangeLog 2013-11-11 20:17:49 UTC (rev 159062)
+++ trunk/LayoutTests/ChangeLog 2013-11-11 20:53:13 UTC (rev 159063)
@@ -1,5 +1,22 @@
2013-11-11 Oliver Hunt <[email protected]>
+ ExtJS breaks with modern Array.prototype.values API due to use of with()
+ https://bugs.webkit.org/show_bug.cgi?id=123440
+
+ Reviewed by Beth Dakin.
+
+ Update tests for removal of Array.prototype.values, and add test to ensure that
+ it's gone.
+
+ * js/Object-getOwnPropertyNames-expected.txt:
+ * js/array-iterators-expected.txt:
+ * js/basic-for-of-expected.txt:
+ * js/script-tests/Object-getOwnPropertyNames.js:
+ * js/script-tests/array-iterators.js:
+ * js/script-tests/basic-for-of.js:
+
+2013-11-11 Oliver Hunt <[email protected]>
+
Whoops, fix test post move
* js/basic-set.html:
Modified: trunk/LayoutTests/js/Object-getOwnPropertyNames-expected.txt (159062 => 159063)
--- trunk/LayoutTests/js/Object-getOwnPropertyNames-expected.txt 2013-11-11 20:17:49 UTC (rev 159062)
+++ trunk/LayoutTests/js/Object-getOwnPropertyNames-expected.txt 2013-11-11 20:53:13 UTC (rev 159063)
@@ -45,7 +45,7 @@
PASS getSortedOwnPropertyNames(Function) is ['length', 'name', 'prototype']
PASS getSortedOwnPropertyNames(Function.prototype) is ['apply', 'bind', 'call', 'constructor', 'length', 'name', 'toString']
PASS getSortedOwnPropertyNames(Array) is ['isArray', 'length', 'name', 'prototype']
-PASS getSortedOwnPropertyNames(Array.prototype) is ['concat', 'constructor', 'entries', 'every', 'filter', 'forEach', 'indexOf', 'join', 'keys', 'lastIndexOf', 'length', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift', 'values']
+PASS getSortedOwnPropertyNames(Array.prototype) is ['concat', 'constructor', 'entries', 'every', 'filter', 'forEach', 'indexOf', 'join', 'keys', 'lastIndexOf', 'length', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift']
PASS getSortedOwnPropertyNames(String) is ['fromCharCode', 'length', 'name', 'prototype']
PASS getSortedOwnPropertyNames(String.prototype) is ['anchor', 'big', 'blink', 'bold', 'charAt', 'charCodeAt', 'concat', 'constructor', 'fixed', 'fontcolor', 'fontsize', 'indexOf', 'italics', 'lastIndexOf', 'length', 'link', 'localeCompare', 'match', 'replace', 'search', 'slice', 'small', 'split', 'strike', 'sub', 'substr', 'substring', 'sup', 'toLocaleLowerCase', 'toLocaleUpperCase', 'toLowerCase', 'toString', 'toUpperCase', 'trim', 'trimLeft', 'trimRight', 'valueOf']
PASS getSortedOwnPropertyNames(Boolean) is ['length', 'name', 'prototype']
Modified: trunk/LayoutTests/js/array-iterators-expected.txt (159062 => 159063)
--- trunk/LayoutTests/js/array-iterators-expected.txt 2013-11-11 20:17:49 UTC (rev 159062)
+++ trunk/LayoutTests/js/array-iterators-expected.txt 2013-11-11 20:53:13 UTC (rev 159063)
@@ -3,6 +3,7 @@
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+PASS 'values' in [] is false
PASS key is 0
PASS key is 1
PASS key is 2
@@ -10,13 +11,6 @@
PASS key is 4
PASS key is 5
PASS testArray.length is 6
-PASS value is 1
-PASS value is 2
-PASS value is 3
-PASS value is 4
-PASS value is 5
-PASS value is 6
-PASS testArray.length is 6
PASS value is testArray[key]
PASS key is 0
PASS value is 1
Modified: trunk/LayoutTests/js/basic-for-of-expected.txt (159062 => 159063)
--- trunk/LayoutTests/js/basic-for-of-expected.txt 2013-11-11 20:17:49 UTC (rev 159062)
+++ trunk/LayoutTests/js/basic-for-of-expected.txt 2013-11-11 20:53:13 UTC (rev 159063)
@@ -10,13 +10,6 @@
PASS value is testArray[4]
PASS value is testArray[5]
PASS testArray.length is 6
-PASS value is testArray[0]
-PASS value is testArray[1]
-PASS value is testArray[2]
-PASS value is testArray[3]
-PASS value is testArray[4]
-PASS value is testArray[5]
-PASS testArray.length is 6
PASS key is 0
PASS key is 1
PASS key is 2
Modified: trunk/LayoutTests/js/script-tests/Object-getOwnPropertyNames.js (159062 => 159063)
--- trunk/LayoutTests/js/script-tests/Object-getOwnPropertyNames.js 2013-11-11 20:17:49 UTC (rev 159062)
+++ trunk/LayoutTests/js/script-tests/Object-getOwnPropertyNames.js 2013-11-11 20:53:13 UTC (rev 159063)
@@ -53,7 +53,7 @@
"Function": "['length', 'name', 'prototype']",
"Function.prototype": "['apply', 'bind', 'call', 'constructor', 'length', 'name', 'toString']",
"Array": "['isArray', 'length', 'name', 'prototype']",
- "Array.prototype": "['concat', 'constructor', 'entries', 'every', 'filter', 'forEach', 'indexOf', 'join', 'keys', 'lastIndexOf', 'length', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift', 'values']",
+ "Array.prototype": "['concat', 'constructor', 'entries', 'every', 'filter', 'forEach', 'indexOf', 'join', 'keys', 'lastIndexOf', 'length', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift']",
"String": "['fromCharCode', 'length', 'name', 'prototype']",
"String.prototype": "['anchor', 'big', 'blink', 'bold', 'charAt', 'charCodeAt', 'concat', 'constructor', 'fixed', 'fontcolor', 'fontsize', 'indexOf', 'italics', 'lastIndexOf', 'length', 'link', 'localeCompare', 'match', 'replace', 'search', 'slice', 'small', 'split', 'strike', 'sub', 'substr', 'substring', 'sup', 'toLocaleLowerCase', 'toLocaleUpperCase', 'toLowerCase', 'toString', 'toUpperCase', 'trim', 'trimLeft', 'trimRight', 'valueOf']",
"Boolean": "['length', 'name', 'prototype']",
Modified: trunk/LayoutTests/js/script-tests/array-iterators.js (159062 => 159063)
--- trunk/LayoutTests/js/script-tests/array-iterators.js 2013-11-11 20:17:49 UTC (rev 159062)
+++ trunk/LayoutTests/js/script-tests/array-iterators.js 2013-11-11 20:53:13 UTC (rev 159063)
@@ -2,6 +2,7 @@
"This test checks the behavior of the iterator methods on Array objects."
);
+shouldBeFalse("'values' in []");
var testArray = [1,2,3,4,5,6]
var keys = testArray.keys();
@@ -13,15 +14,6 @@
shouldBe("testArray.length", String(i))
-var values = testArray.values();
-var i = 0;
-for (var value of values) {
- i++;
- shouldBe("value", String(i) )
-}
-
-shouldBe("testArray.length", String(i))
-
var entries = testArray.entries();
var i = 0;
for (var [key, value] of entries) {
Modified: trunk/LayoutTests/js/script-tests/basic-for-of.js (159062 => 159063)
--- trunk/LayoutTests/js/script-tests/basic-for-of.js 2013-11-11 20:17:49 UTC (rev 159062)
+++ trunk/LayoutTests/js/script-tests/basic-for-of.js 2013-11-11 20:53:13 UTC (rev 159063)
@@ -6,12 +6,6 @@
var testArray = [1,2,3,4,5,6]
var i = 0;
-for (var value of testArray.values())
- shouldBe("value", "testArray[" + i++ + "]")
-
-shouldBe("testArray.length", String(i))
-
-var i = 0;
for (var value of testArray)
shouldBe("value", "testArray[" + i++ + "]")
Modified: trunk/Source/_javascript_Core/ChangeLog (159062 => 159063)
--- trunk/Source/_javascript_Core/ChangeLog 2013-11-11 20:17:49 UTC (rev 159062)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-11-11 20:53:13 UTC (rev 159063)
@@ -1,3 +1,17 @@
+2013-11-11 Oliver Hunt <[email protected]>
+
+ ExtJS breaks with modern Array.prototype.values API due to use of with()
+ https://bugs.webkit.org/show_bug.cgi?id=123440
+
+ Reviewed by Beth Dakin.
+
+ As with our attempt to make Arguments use the Array prototype, ExtJS has
+ a weird dependency on not adding new APIs to core types. In this case
+ Array.prototype.values. The fix is to remove it, and push for ES6 to drop
+ the API.
+
+ * runtime/ArrayPrototype.cpp:
+
2013-11-11 Gabor Rapcsanyi <[email protected]>
Fix CPU(ARM_TRADITIONAL) build after r159039.
Modified: trunk/Source/_javascript_Core/runtime/ArrayPrototype.cpp (159062 => 159063)
--- trunk/Source/_javascript_Core/runtime/ArrayPrototype.cpp 2013-11-11 20:17:49 UTC (rev 159062)
+++ trunk/Source/_javascript_Core/runtime/ArrayPrototype.cpp 2013-11-11 20:53:13 UTC (rev 159063)
@@ -116,7 +116,6 @@
reduce arrayProtoFuncReduce DontEnum|Function 1
reduceRight arrayProtoFuncReduceRight DontEnum|Function 1
map arrayProtoFuncMap DontEnum|Function 1
- values arrayProtoFuncValues DontEnum|Function 0
entries arrayProtoFuncEntries DontEnum|Function 0
keys arrayProtoFuncKeys DontEnum|Function 0
@end