Diff
Modified: trunk/JSTests/ChakraCore.yaml (218783 => 218784)
--- trunk/JSTests/ChakraCore.yaml 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/JSTests/ChakraCore.yaml 2017-06-24 08:06:47 UTC (rev 218784)
@@ -1718,7 +1718,7 @@
- path: ChakraCore/test/es6/proxybug.js
cmd: runChakra :pass, "NoException", "", []
- path: ChakraCore/test/es6/proxyenumbug.js
- cmd: runChakra :pass, "NoException", "", []
+ cmd: runChakra :skipDueToOutdatedOrBadTest, "NoException", "", []
- path: ChakraCore/test/es6/proxy-issue884.js
# Different behavior.
cmd: runChakra :skip, "NoException", "proxy-issue884.baseline", []
Modified: trunk/JSTests/ChangeLog (218783 => 218784)
--- trunk/JSTests/ChangeLog 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/JSTests/ChangeLog 2017-06-24 08:06:47 UTC (rev 218784)
@@ -1,3 +1,23 @@
+2017-06-24 Joseph Pecoraro <[email protected]>
+
+ Remove Reflect.enumerate
+ https://bugs.webkit.org/show_bug.cgi?id=173806
+
+ Reviewed by Yusuke Suzuki.
+
+ * ChakraCore.yaml:
+ * es6.yaml:
+ These tests now fail because they use Reflect.enumerate.
+
+ * test262.yaml:
+ This test now passes, it checked that Reflect.enumerate is undefined!
+
+ * stress/property-name-enumerator-should-not-look-into-indexed-values-when-it-is-a-dictionary.js:
+ Convert to for..in which presented the original issue. See bug <https://webkit.org/b/149811>
+
+ * stress/reflect-enumerate.js: Removed.
+ Remove a test solely for Reflect.enumerate.
+
2017-06-22 Saam Barati <[email protected]>
ValueRep(DoubleRep(@v)) can not simply convert to @v
Modified: trunk/JSTests/es6.yaml (218783 => 218784)
--- trunk/JSTests/es6.yaml 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/JSTests/es6.yaml 2017-06-24 08:06:47 UTC (rev 218784)
@@ -469,7 +469,7 @@
- path: es6/Reflect_Reflect.deleteProperty.js
cmd: runES6 :normal
- path: es6/Reflect_Reflect.enumerate.js
- cmd: runES6 :normal
+ cmd: runES6 :failDueToOutdatedOrBadTest
- path: es6/Reflect_Reflect.get.js
cmd: runES6 :normal
- path: es6/Reflect_Reflect.getOwnPropertyDescriptor.js
Modified: trunk/JSTests/stress/property-name-enumerator-should-not-look-into-indexed-values-when-it-is-a-dictionary.js (218783 => 218784)
--- trunk/JSTests/stress/property-name-enumerator-should-not-look-into-indexed-values-when-it-is-a-dictionary.js 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/JSTests/stress/property-name-enumerator-should-not-look-into-indexed-values-when-it-is-a-dictionary.js 2017-06-24 08:06:47 UTC (rev 218784)
@@ -30,7 +30,7 @@
delete cols[remapcols[i]];
}
var count = 0;
- for (var col2 of Reflect.enumerate(cols)) {
+ for (var col2 in cols) {
count++;
shouldBe(col2, '0');
}
Deleted: trunk/JSTests/stress/reflect-enumerate.js (218783 => 218784)
--- trunk/JSTests/stress/reflect-enumerate.js 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/JSTests/stress/reflect-enumerate.js 2017-06-24 08:06:47 UTC (rev 218784)
@@ -1,83 +0,0 @@
-function shouldBe(actual, expected) {
- if (actual !== expected)
- throw new Error('bad value: ' + actual);
-}
-
-function shouldThrow(func, message) {
- var error = null;
- try {
- func();
- } catch (e) {
- error = e;
- }
- if (!error)
- throw new Error("not thrown.");
- if (String(error) !== message)
- throw new Error("bad error: " + String(error));
-}
-
-shouldBe(Reflect.enumerate.length, 1);
-
-shouldThrow(() => {
- Reflect.enumerate("hello");
-}, `TypeError: Reflect.enumerate requires the first argument be an object`);
-
-var iterator = Reflect.enumerate({});
-var iteratorPrototype = [][Symbol.iterator]().__proto__.__proto__;
-shouldBe(iterator.__proto__ === iteratorPrototype, true);
-shouldBe(iterator.hasOwnProperty('next'), true);
-shouldBe(iterator.next.length, 0);
-shouldBe(iterator[Symbol.iterator]() === iterator, true);
-
-function testIterator(object, expected) {
- var index = 0;
- for (var name of Reflect.enumerate(object))
- shouldBe(name === expected[index++], true);
- shouldBe(index, expected.length);
-}
-
-testIterator({ hello:42, 0: 0 }, ['0', 'hello']);
-testIterator({ 1:1, hello:42, 0: 0 }, ['0', '1', 'hello']);
-testIterator({ 1:1, hello:42, 0: 0, world: 'ok', 100000:0 }, ['0', '1', '100000', 'hello', 'world']);
-
-testIterator({ 1:1, hello:42, 0: 0, [Symbol.unscopables]: 42, world: 'ok', 100000:0 }, ['0', '1', '100000', 'hello', 'world']);
-
-var object = { 1:1, hello:42, 0: 0, [Symbol.unscopables]: 42, world: 'ok', 100000:0 };
-Object.defineProperty(object, 'hidden', {
- value: 42,
- enumerable: false
-});
-testIterator(object, ['0', '1', '100000', 'hello', 'world']);
-
-testIterator({ hello:42, 0: 0, __proto__: { 1: 1, world: 42 } }, ['0', 'hello', '1', 'world']);
-testIterator({}, []);
-testIterator([], []);
-
-(function () {
- var object = { hello: 42, world: 50 };
- var iterator = Reflect.enumerate(object);
- iterator.next();
- delete object.hello;
- delete object.world;
- shouldBe(iterator.next().done, true);
-}());
-
-(function () {
- var proto = { ng: 200 };
- var object = { __proto__: proto, hello: 42, world: 50 };
- var iterator = Reflect.enumerate(object);
- iterator.next();
- delete proto.ng;
- shouldBe(iterator.next().value !== 'ng', true);
- shouldBe(iterator.next().done, true);
-}());
-
-(function () {
- var proto = { ng: 200 };
- var object = { __proto__: proto, world: 50 };
- var iterator = Reflect.enumerate(object);
- iterator.next();
- delete proto.world;
- shouldBe(iterator.next().value, 'ng');
- shouldBe(iterator.next().done, true);
-}());
Modified: trunk/JSTests/test262.yaml (218783 => 218784)
--- trunk/JSTests/test262.yaml 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/JSTests/test262.yaml 2017-06-24 08:06:47 UTC (rev 218784)
@@ -36768,9 +36768,9 @@
- path: test262/test/built-ins/Reflect/deleteProperty/target-is-symbol-throws.js
cmd: runTest262 :normal, "NoException", ["../../../../harness/assert.js", "../../../../harness/sta.js"], [:strict]
- path: test262/test/built-ins/Reflect/enumerate/undefined.js
- cmd: runTest262 :fail, "NoException", ["../../../../harness/assert.js", "../../../../harness/sta.js"], []
+ cmd: runTest262 :normal, "NoException", ["../../../../harness/assert.js", "../../../../harness/sta.js"], []
- path: test262/test/built-ins/Reflect/enumerate/undefined.js
- cmd: runTest262 :fail, "NoException", ["../../../../harness/assert.js", "../../../../harness/sta.js"], [:strict]
+ cmd: runTest262 :normal, "NoException", ["../../../../harness/assert.js", "../../../../harness/sta.js"], [:strict]
- path: test262/test/built-ins/Reflect/get/get.js
cmd: runTest262 :normal, "NoException", ["../../../../harness/assert.js", "../../../../harness/sta.js", "../../../../harness/propertyHelper.js"], []
- path: test262/test/built-ins/Reflect/get/get.js
Modified: trunk/LayoutTests/ChangeLog (218783 => 218784)
--- trunk/LayoutTests/ChangeLog 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/LayoutTests/ChangeLog 2017-06-24 08:06:47 UTC (rev 218784)
@@ -1,3 +1,14 @@
+2017-06-24 Joseph Pecoraro <[email protected]>
+
+ Remove Reflect.enumerate
+ https://bugs.webkit.org/show_bug.cgi?id=173806
+
+ Reviewed by Yusuke Suzuki.
+
+ * inspector/model/remote-object-expected.txt:
+ * inspector/model/remote-object.html:
+ * platform/mac/inspector/model/remote-object-expected.txt:
+
2017-06-24 Chris Fleizach <[email protected]>
AX: Cannot call setValue() on contenteditable or ARIA text controls
Modified: trunk/LayoutTests/inspector/model/remote-object-expected.txt (218783 => 218784)
--- trunk/LayoutTests/inspector/model/remote-object-expected.txt 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/LayoutTests/inspector/model/remote-object-expected.txt 2017-06-24 08:06:47 UTC (rev 218784)
@@ -3922,162 +3922,6 @@
}
-----------------------------------------------------
-_expression_: Reflect.enumerate({a:1, b:2, c:3})
-{
- "_type": "object",
- "_subtype": "iterator",
- "_objectId": "<filtered>",
- "_description": "PropertyName Iterator",
- "_preview": {
- "_type": "object",
- "_subtype": "iterator",
- "_description": "PropertyName Iterator",
- "_lossless": true,
- "_overflow": false,
- "_properties": [
- {
- "_name": "object",
- "_type": "object",
- "_valuePreview": {
- "_type": "object",
- "_description": "Object",
- "_lossless": true,
- "_overflow": false,
- "_properties": [
- {
- "_name": "a",
- "_type": "number",
- "_value": "1"
- },
- {
- "_name": "b",
- "_type": "number",
- "_value": "2"
- },
- {
- "_name": "c",
- "_type": "number",
- "_value": "3"
- }
- ],
- "_entries": null
- },
- "_internal": true
- }
- ],
- "_entries": [
- {
- "_value": {
- "_type": "string",
- "_description": "a",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- },
- {
- "_value": {
- "_type": "string",
- "_description": "b",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- },
- {
- "_value": {
- "_type": "string",
- "_description": "c",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- }
- ]
- }
-}
-
------------------------------------------------------
-_expression_: Reflect.enumerate([1, 2, 3, 4, 5, 6, 7])
-{
- "_type": "object",
- "_subtype": "iterator",
- "_objectId": "<filtered>",
- "_description": "PropertyName Iterator",
- "_preview": {
- "_type": "object",
- "_subtype": "iterator",
- "_description": "PropertyName Iterator",
- "_lossless": false,
- "_overflow": true,
- "_properties": [
- {
- "_name": "object",
- "_type": "object",
- "_subtype": "array",
- "_value": "Array",
- "_internal": true
- }
- ],
- "_entries": [
- {
- "_value": {
- "_type": "string",
- "_description": "0",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- },
- {
- "_value": {
- "_type": "string",
- "_description": "1",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- },
- {
- "_value": {
- "_type": "string",
- "_description": "2",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- },
- {
- "_value": {
- "_type": "string",
- "_description": "3",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- },
- {
- "_value": {
- "_type": "string",
- "_description": "4",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- }
- ]
- }
-}
-
------------------------------------------------------
_expression_: new Promise(function(){})
{
"_type": "object",
Modified: trunk/LayoutTests/inspector/model/remote-object.html (218783 => 218784)
--- trunk/LayoutTests/inspector/model/remote-object.html 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/LayoutTests/inspector/model/remote-object.html 2017-06-24 08:06:47 UTC (rev 218784)
@@ -159,8 +159,6 @@
{_expression_: "set = new Set; for (var i = 0; i <= 100; i++) set.add(i); set.values()"},
{_expression_: "map.entries()"},
{_expression_: "x = undefined; (function() { x = arguments; })(1, 'two'); x[Symbol.iterator]()"},
- {_expression_: "Reflect.enumerate({a:1, b:2, c:3})"},
- {_expression_: "Reflect.enumerate([1, 2, 3, 4, 5, 6, 7])"},
// Promise
{_expression_: "new Promise(function(){})"},
Modified: trunk/LayoutTests/platform/mac/inspector/model/remote-object-expected.txt (218783 => 218784)
--- trunk/LayoutTests/platform/mac/inspector/model/remote-object-expected.txt 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/LayoutTests/platform/mac/inspector/model/remote-object-expected.txt 2017-06-24 08:06:47 UTC (rev 218784)
@@ -3925,162 +3925,6 @@
}
-----------------------------------------------------
-_expression_: Reflect.enumerate({a:1, b:2, c:3})
-{
- "_type": "object",
- "_subtype": "iterator",
- "_objectId": "<filtered>",
- "_description": "PropertyName Iterator",
- "_preview": {
- "_type": "object",
- "_subtype": "iterator",
- "_description": "PropertyName Iterator",
- "_lossless": true,
- "_overflow": false,
- "_properties": [
- {
- "_name": "object",
- "_type": "object",
- "_valuePreview": {
- "_type": "object",
- "_description": "Object",
- "_lossless": true,
- "_overflow": false,
- "_properties": [
- {
- "_name": "a",
- "_type": "number",
- "_value": "1"
- },
- {
- "_name": "b",
- "_type": "number",
- "_value": "2"
- },
- {
- "_name": "c",
- "_type": "number",
- "_value": "3"
- }
- ],
- "_entries": null
- },
- "_internal": true
- }
- ],
- "_entries": [
- {
- "_value": {
- "_type": "string",
- "_description": "a",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- },
- {
- "_value": {
- "_type": "string",
- "_description": "b",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- },
- {
- "_value": {
- "_type": "string",
- "_description": "c",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- }
- ]
- }
-}
-
------------------------------------------------------
-_expression_: Reflect.enumerate([1, 2, 3, 4, 5, 6, 7])
-{
- "_type": "object",
- "_subtype": "iterator",
- "_objectId": "<filtered>",
- "_description": "PropertyName Iterator",
- "_preview": {
- "_type": "object",
- "_subtype": "iterator",
- "_description": "PropertyName Iterator",
- "_lossless": false,
- "_overflow": true,
- "_properties": [
- {
- "_name": "object",
- "_type": "object",
- "_subtype": "array",
- "_value": "Array",
- "_internal": true
- }
- ],
- "_entries": [
- {
- "_value": {
- "_type": "string",
- "_description": "0",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- },
- {
- "_value": {
- "_type": "string",
- "_description": "1",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- },
- {
- "_value": {
- "_type": "string",
- "_description": "2",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- },
- {
- "_value": {
- "_type": "string",
- "_description": "3",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- },
- {
- "_value": {
- "_type": "string",
- "_description": "4",
- "_lossless": true,
- "_overflow": false,
- "_properties": null,
- "_entries": null
- }
- }
- ]
- }
-}
-
------------------------------------------------------
_expression_: new Promise(function(){})
{
"_type": "object",
Modified: trunk/Source/_javascript_Core/CMakeLists.txt (218783 => 218784)
--- trunk/Source/_javascript_Core/CMakeLists.txt 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/Source/_javascript_Core/CMakeLists.txt 2017-06-24 08:06:47 UTC (rev 218784)
@@ -811,7 +811,6 @@
runtime/JSPromiseDeferred.cpp
runtime/JSPromisePrototype.cpp
runtime/JSPropertyNameEnumerator.cpp
- runtime/JSPropertyNameIterator.cpp
runtime/JSProxy.cpp
runtime/JSRunLoopTimer.cpp
runtime/JSScope.cpp
Modified: trunk/Source/_javascript_Core/ChangeLog (218783 => 218784)
--- trunk/Source/_javascript_Core/ChangeLog 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/Source/_javascript_Core/ChangeLog 2017-06-24 08:06:47 UTC (rev 218784)
@@ -1,3 +1,24 @@
+2017-06-24 Joseph Pecoraro <[email protected]>
+
+ Remove Reflect.enumerate
+ https://bugs.webkit.org/show_bug.cgi?id=173806
+
+ Reviewed by Yusuke Suzuki.
+
+ * CMakeLists.txt:
+ * _javascript_Core.xcodeproj/project.pbxproj:
+ * inspector/JSInjectedScriptHost.cpp:
+ (Inspector::JSInjectedScriptHost::subtype):
+ (Inspector::JSInjectedScriptHost::getInternalProperties):
+ (Inspector::JSInjectedScriptHost::iteratorEntries):
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::init):
+ (JSC::JSGlobalObject::visitChildren):
+ * runtime/JSPropertyNameIterator.cpp: Removed.
+ * runtime/JSPropertyNameIterator.h: Removed.
+ * runtime/ReflectObject.cpp:
+ (JSC::reflectObjectEnumerate): Deleted.
+
2017-06-23 Keith Miller <[email protected]>
Switch VMTraps to use halt instructions rather than breakpoint instructions
Modified: trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj (218783 => 218784)
--- trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj 2017-06-24 08:06:47 UTC (rev 218784)
@@ -2411,8 +2411,6 @@
E3D239C91B829C1C00BBEF67 /* JSModuleEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = E3D239C71B829C1C00BBEF67 /* JSModuleEnvironment.h */; settings = {ATTRIBUTES = (Private, ); }; };
E3D877731E65C09E00BE945A /* BytecodeDumper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E3D877711E65C08900BE945A /* BytecodeDumper.cpp */; };
E3D877741E65C0A000BE945A /* BytecodeDumper.h in Headers */ = {isa = PBXBuildFile; fileRef = E3D877721E65C08900BE945A /* BytecodeDumper.h */; };
- E3EF88741B66DF23003F26CB /* JSPropertyNameIterator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E3EF88721B66DF23003F26CB /* JSPropertyNameIterator.cpp */; };
- E3EF88751B66DF23003F26CB /* JSPropertyNameIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = E3EF88731B66DF23003F26CB /* JSPropertyNameIterator.h */; settings = {ATTRIBUTES = (Private, ); }; };
E3F23A7F1ECF13EE00978D99 /* SnippetSlowPathCalls.h in Headers */ = {isa = PBXBuildFile; fileRef = E3F23A7E1ECF13E500978D99 /* SnippetSlowPathCalls.h */; settings = {ATTRIBUTES = (Private, ); }; };
E3F23A801ECF13F500978D99 /* SnippetReg.h in Headers */ = {isa = PBXBuildFile; fileRef = E3F23A7D1ECF13E500978D99 /* SnippetReg.h */; settings = {ATTRIBUTES = (Private, ); }; };
E3F23A811ECF13FA00978D99 /* SnippetParams.h in Headers */ = {isa = PBXBuildFile; fileRef = E3F23A7C1ECF13E500978D99 /* SnippetParams.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -5039,8 +5037,6 @@
E3D2642A1D38C042000BE174 /* BytecodeRewriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BytecodeRewriter.h; sourceTree = "<group>"; };
E3D877711E65C08900BE945A /* BytecodeDumper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BytecodeDumper.cpp; sourceTree = "<group>"; };
E3D877721E65C08900BE945A /* BytecodeDumper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BytecodeDumper.h; sourceTree = "<group>"; };
- E3EF88721B66DF23003F26CB /* JSPropertyNameIterator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSPropertyNameIterator.cpp; sourceTree = "<group>"; };
- E3EF88731B66DF23003F26CB /* JSPropertyNameIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSPropertyNameIterator.h; sourceTree = "<group>"; };
E3F23A7B1ECF13E500978D99 /* Snippet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Snippet.h; sourceTree = "<group>"; };
E3F23A7C1ECF13E500978D99 /* SnippetParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SnippetParams.h; sourceTree = "<group>"; };
E3F23A7D1ECF13E500978D99 /* SnippetReg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SnippetReg.h; sourceTree = "<group>"; };
@@ -6864,8 +6860,6 @@
7C184E1D17BEE22E007CB63A /* JSPromisePrototype.h */,
2A05ABD31961DF2400341750 /* JSPropertyNameEnumerator.cpp */,
2A05ABD41961DF2400341750 /* JSPropertyNameEnumerator.h */,
- E3EF88721B66DF23003F26CB /* JSPropertyNameIterator.cpp */,
- E3EF88731B66DF23003F26CB /* JSPropertyNameIterator.h */,
862553CE16136AA5009F17D0 /* JSProxy.cpp */,
862553CF16136AA5009F17D0 /* JSProxy.h */,
534638721E70D01500F12AC1 /* JSRunLoopTimer.cpp */,
@@ -9139,7 +9133,6 @@
7C184E1F17BEE22E007CB63A /* JSPromisePrototype.h in Headers */,
996B731F1BDA08EF00331B84 /* JSPromisePrototype.lut.h in Headers */,
2A05ABD61961DF2400341750 /* JSPropertyNameEnumerator.h in Headers */,
- E3EF88751B66DF23003F26CB /* JSPropertyNameIterator.h in Headers */,
862553D216136E1A009F17D0 /* JSProxy.h in Headers */,
A552C3801ADDB8FE00139726 /* JSRemoteInspector.h in Headers */,
9928FF3C18AC4AEC00B8CF12 /* JSReplayInputs.h in Headers */,
@@ -10736,7 +10729,6 @@
7C008CDA187124BB00955C24 /* JSPromiseDeferred.cpp in Sources */,
7C184E1E17BEE22E007CB63A /* JSPromisePrototype.cpp in Sources */,
2A05ABD51961DF2400341750 /* JSPropertyNameEnumerator.cpp in Sources */,
- E3EF88741B66DF23003F26CB /* JSPropertyNameIterator.cpp in Sources */,
862553D116136DA9009F17D0 /* JSProxy.cpp in Sources */,
E3D877731E65C09E00BE945A /* BytecodeDumper.cpp in Sources */,
A552C37F1ADDB8FE00139726 /* JSRemoteInspector.cpp in Sources */,
Modified: trunk/Source/_javascript_Core/inspector/JSInjectedScriptHost.cpp (218783 => 218784)
--- trunk/Source/_javascript_Core/inspector/JSInjectedScriptHost.cpp 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/Source/_javascript_Core/inspector/JSInjectedScriptHost.cpp 2017-06-24 08:06:47 UTC (rev 218784)
@@ -42,7 +42,6 @@
#include "JSMap.h"
#include "JSMapIterator.h"
#include "JSPromise.h"
-#include "JSPropertyNameIterator.h"
#include "JSSet.h"
#include "JSSetIterator.h"
#include "JSStringIterator.h"
@@ -183,8 +182,7 @@
if (value.inherits(vm, JSMapIterator::info())
|| value.inherits(vm, JSSetIterator::info())
- || value.inherits(vm, JSStringIterator::info())
- || value.inherits(vm, JSPropertyNameIterator::info()))
+ || value.inherits(vm, JSStringIterator::info()))
return jsNontrivialString(exec, ASCIILiteral("iterator"));
if (object && object->getDirect(exec->vm(), exec->vm().propertyNames->builtinNames().arrayIteratorNextIndexPrivateName()))
@@ -392,15 +390,6 @@
return array;
}
- if (JSPropertyNameIterator* propertyNameIterator = jsDynamicCast<JSPropertyNameIterator*>(vm, value)) {
- unsigned index = 0;
- JSArray* array = constructEmptyArray(exec, nullptr, 1);
- RETURN_IF_EXCEPTION(scope, JSValue());
- scope.release();
- array->putDirectIndex(exec, index++, constructInternalProperty(exec, "object", propertyNameIterator->iteratedValue()));
- return array;
- }
-
return jsUndefined();
}
@@ -545,10 +534,7 @@
iterator = setIterator->clone(exec);
else if (JSStringIterator* stringIterator = jsDynamicCast<JSStringIterator*>(vm, value))
iterator = stringIterator->clone(exec);
- else if (JSPropertyNameIterator* propertyNameIterator = jsDynamicCast<JSPropertyNameIterator*>(vm, value)) {
- iterator = propertyNameIterator->clone(exec);
- RETURN_IF_EXCEPTION(scope, JSValue());
- } else {
+ else {
if (JSObject* iteratorObject = jsDynamicCast<JSObject*>(vm, value)) {
// Array Iterators are created in JS for performance reasons. Thus the only way to know we have one is to
// look for a property that is unique to them.
Modified: trunk/Source/_javascript_Core/runtime/JSGlobalObject.cpp (218783 => 218784)
--- trunk/Source/_javascript_Core/runtime/JSGlobalObject.cpp 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalObject.cpp 2017-06-24 08:06:47 UTC (rev 218784)
@@ -102,7 +102,6 @@
#include "JSPromise.h"
#include "JSPromiseConstructor.h"
#include "JSPromisePrototype.h"
-#include "JSPropertyNameIterator.h"
#include "JSSet.h"
#include "JSSetIterator.h"
#include "JSStringIterator.h"
@@ -587,8 +586,6 @@
m_sharedArrayBufferStructure.set(vm, this, JSArrayBuffer::createStructure(vm, this, m_sharedArrayBufferPrototype.get()));
m_iteratorPrototype.set(vm, this, IteratorPrototype::create(vm, this, IteratorPrototype::createStructure(vm, this, m_objectPrototype.get())));
-
- m_propertyNameIteratorStructure.set(vm, this, JSPropertyNameIterator::createStructure(vm, this, m_iteratorPrototype.get()));
m_generatorPrototype.set(vm, this, GeneratorPrototype::create(vm, this, GeneratorPrototype::createStructure(vm, this, m_iteratorPrototype.get())));
#define CREATE_PROTOTYPE_FOR_SIMPLE_TYPE(capitalName, lowerName, properName, instanceType, jsName, prototypeBase) \
@@ -1260,7 +1257,6 @@
thisObject->m_callbackConstructorStructure.visit(visitor);
thisObject->m_callbackFunctionStructure.visit(visitor);
thisObject->m_callbackObjectStructure.visit(visitor);
- visitor.append(thisObject->m_propertyNameIteratorStructure);
#if JSC_OBJC_API_ENABLED
thisObject->m_objcCallbackFunctionStructure.visit(visitor);
thisObject->m_objcWrapperObjectStructure.visit(visitor);
Deleted: trunk/Source/_javascript_Core/runtime/JSPropertyNameIterator.cpp (218783 => 218784)
--- trunk/Source/_javascript_Core/runtime/JSPropertyNameIterator.cpp 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/Source/_javascript_Core/runtime/JSPropertyNameIterator.cpp 2017-06-24 08:06:47 UTC (rev 218784)
@@ -1,156 +0,0 @@
-/*
- * Copyright (C) 2015-2016 Apple, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSPropertyNameIterator.h"
-
-#include "IteratorOperations.h"
-#include "JSCInlines.h"
-#include "JSPropertyNameEnumerator.h"
-
-namespace JSC {
-
-static EncodedJSValue JSC_HOST_CALL propertyNameIteratorFuncNext(ExecState*);
-
-const ClassInfo JSPropertyNameIterator::s_info = { "PropertyName Iterator", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSPropertyNameIterator) };
-
-JSPropertyNameIterator::JSPropertyNameIterator(VM& vm, Structure* structure, JSObject* object, JSPropertyNameEnumerator* enumerator)
- : Base(vm, structure)
- , m_iteratedObject(vm, this, object)
- , m_propertyNameEnumerator(vm, this, enumerator)
- , m_enumerationPhase(EnumerationPhase::IndexedNames)
- , m_cursor(0)
-{
-}
-
-JSPropertyNameIterator* JSPropertyNameIterator::clone(ExecState* exec)
-{
- auto iterator = JSPropertyNameIterator::create(exec, exec->jsCallee()->globalObject()->propertyNameIteratorStructure(), m_iteratedObject.get(), m_propertyNameEnumerator.get());
- iterator->m_enumerationPhase = m_enumerationPhase;
- iterator->m_cursor = m_cursor;
- return iterator;
-}
-
-JSPropertyNameIterator* JSPropertyNameIterator::create(ExecState* exec, Structure* structure, JSObject* iteratedObject)
-{
- VM& vm = exec->vm();
- auto scope = DECLARE_THROW_SCOPE(vm);
- JSPropertyNameEnumerator* enumerator = propertyNameEnumerator(exec, iteratedObject);
- RETURN_IF_EXCEPTION(scope, nullptr);
- return JSPropertyNameIterator::create(exec, structure, iteratedObject, enumerator);
-}
-
-JSPropertyNameIterator* JSPropertyNameIterator::create(ExecState* exec, Structure* structure, JSObject* iteratedObject, JSPropertyNameEnumerator* enumerator)
-{
- VM& vm = exec->vm();
- JSPropertyNameIterator* instance = new (NotNull, allocateCell<JSPropertyNameIterator>(vm.heap)) JSPropertyNameIterator(vm, structure, iteratedObject, enumerator);
- instance->finishCreation(vm, structure->globalObject());
- return instance;
-}
-
-void JSPropertyNameIterator::finishCreation(VM& vm, JSGlobalObject* globalObject)
-{
- Base::finishCreation(vm);
- ASSERT(inherits(vm, info()));
- JSC_NATIVE_FUNCTION(vm.propertyNames->next, propertyNameIteratorFuncNext, DontEnum, 0);
-}
-
-void JSPropertyNameIterator::visitChildren(JSCell* cell, SlotVisitor& visitor)
-{
- JSPropertyNameIterator* thisObject = jsCast<JSPropertyNameIterator*>(cell);
- ASSERT_GC_OBJECT_INHERITS(thisObject, info());
- Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_iteratedObject);
- visitor.append(thisObject->m_propertyNameEnumerator);
-}
-
-bool JSPropertyNameIterator::next(ExecState* exec, JSValue& output)
-{
- if (m_enumerationPhase == EnumerationPhase::IndexedNames) {
- for (; m_cursor < m_propertyNameEnumerator->indexedLength();) {
- uint32_t index = m_cursor++;
- if (m_iteratedObject->hasProperty(exec, index)) {
- output = jsString(exec, Identifier::from(exec, index).string());
- return true;
- }
- }
- m_cursor = 0;
- m_enumerationPhase = EnumerationPhase::StructureNames;
- }
-
- if (m_enumerationPhase == EnumerationPhase::StructureNames) {
- for (; m_cursor < m_propertyNameEnumerator->endStructurePropertyIndex();) {
- uint32_t index = m_cursor++;
- JSString* propertyName = m_propertyNameEnumerator->propertyNameAtIndex(index);
- ASSERT(propertyName);
- if (m_iteratedObject->structure(exec->vm())->id() == m_propertyNameEnumerator->cachedStructureID()) {
- output = propertyName;
- return true;
- }
-
- if (m_iteratedObject->hasProperty(exec, propertyName->toIdentifier(exec))) {
- output = propertyName;
- return true;
- }
- }
- ASSERT(m_cursor >= m_propertyNameEnumerator->endStructurePropertyIndex());
- // Use the same m_cursor in the GenericNames phase.
- m_enumerationPhase = EnumerationPhase::GenericNames;
- }
-
- if (m_enumerationPhase == EnumerationPhase::GenericNames) {
- for (; m_cursor < m_propertyNameEnumerator->endGenericPropertyIndex();) {
- uint32_t index = m_cursor++;
- JSString* propertyName = m_propertyNameEnumerator->propertyNameAtIndex(index);
- ASSERT(propertyName);
- if (m_iteratedObject->hasProperty(exec, propertyName->toIdentifier(exec))) {
- output = propertyName;
- return true;
- }
- }
- m_enumerationPhase = EnumerationPhase::Done;
- }
-
- return false;
-}
-
-// ------------------------------ PropertyNameIterator Functions ----------------------------
-
-EncodedJSValue JSC_HOST_CALL propertyNameIteratorFuncNext(ExecState* exec)
-{
- VM& vm = exec->vm();
- auto scope = DECLARE_THROW_SCOPE(vm);
-
- JSPropertyNameIterator* iterator = jsDynamicCast<JSPropertyNameIterator*>(vm, exec->thisValue());
- if (!iterator)
- return JSValue::encode(throwTypeError(exec, scope, ASCIILiteral("Cannot call PropertyNameIterator.next() on a non-PropertyNameIterator object")));
-
- JSValue result;
- if (iterator->next(exec, result))
- return JSValue::encode(createIteratorResultObject(exec, result, false));
- return JSValue::encode(createIteratorResultObject(exec, jsUndefined(), true));
-}
-
-} // namespace JSC
Deleted: trunk/Source/_javascript_Core/runtime/JSPropertyNameIterator.h (218783 => 218784)
--- trunk/Source/_javascript_Core/runtime/JSPropertyNameIterator.h 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/Source/_javascript_Core/runtime/JSPropertyNameIterator.h 2017-06-24 08:06:47 UTC (rev 218784)
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2015 Apple, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include "JSObject.h"
-#include "JSPropertyNameEnumerator.h"
-
-namespace JSC {
-
-class JSPropertyNameIterator : public JSNonFinalObject {
-public:
- typedef JSNonFinalObject Base;
-
- enum class EnumerationPhase : uint32_t {
- IndexedNames,
- StructureNames,
- GenericNames,
- Done
- };
-
- DECLARE_EXPORT_INFO;
-
- static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
- {
- return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
- }
-
- static JSPropertyNameIterator* create(ExecState*, Structure*, JSObject*);
-
- JSPropertyNameIterator* clone(ExecState*);
- bool next(ExecState*, JSValue&);
-
- JSValue iteratedValue() const { return m_iteratedObject.get(); }
-
- static void visitChildren(JSCell*, SlotVisitor&);
-
-private:
- JSPropertyNameIterator(VM&, Structure*, JSObject*, JSPropertyNameEnumerator*);
-
- void finishCreation(VM&, JSGlobalObject*);
-
- static JSPropertyNameIterator* create(ExecState*, Structure*, JSObject*, JSPropertyNameEnumerator*);
-
- WriteBarrier<JSObject> m_iteratedObject;
- WriteBarrier<JSPropertyNameEnumerator> m_propertyNameEnumerator;
- EnumerationPhase m_enumerationPhase;
- uint32_t m_cursor;
-};
-
-} // namespace JSC
Modified: trunk/Source/_javascript_Core/runtime/ReflectObject.cpp (218783 => 218784)
--- trunk/Source/_javascript_Core/runtime/ReflectObject.cpp 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/Source/_javascript_Core/runtime/ReflectObject.cpp 2017-06-24 08:06:47 UTC (rev 218784)
@@ -29,7 +29,6 @@
#include "BuiltinNames.h"
#include "JSCInlines.h"
#include "JSGlobalObjectFunctions.h"
-#include "JSPropertyNameIterator.h"
#include "Lookup.h"
#include "ObjectConstructor.h"
@@ -37,7 +36,6 @@
static EncodedJSValue JSC_HOST_CALL reflectObjectConstruct(ExecState*);
static EncodedJSValue JSC_HOST_CALL reflectObjectDefineProperty(ExecState*);
-static EncodedJSValue JSC_HOST_CALL reflectObjectEnumerate(ExecState*);
static EncodedJSValue JSC_HOST_CALL reflectObjectGet(ExecState*);
static EncodedJSValue JSC_HOST_CALL reflectObjectGetOwnPropertyDescriptor(ExecState*);
static EncodedJSValue JSC_HOST_CALL reflectObjectGetPrototypeOf(ExecState*);
@@ -63,7 +61,6 @@
construct reflectObjectConstruct DontEnum|Function 2
defineProperty reflectObjectDefineProperty DontEnum|Function 3
deleteProperty JSBuiltin DontEnum|Function 2
- enumerate reflectObjectEnumerate DontEnum|Function 1
get reflectObjectGet DontEnum|Function 2
getOwnPropertyDescriptor reflectObjectGetOwnPropertyDescriptor DontEnum|Function 2
getPrototypeOf reflectObjectGetPrototypeOf DontEnum|Function 1
@@ -156,20 +153,6 @@
return JSValue::encode(jsBoolean(targetObject->methodTable(vm)->defineOwnProperty(targetObject, exec, propertyName, descriptor, shouldThrow)));
}
-// FIXME: Reflect.enumerate is removed in ECMA 2016 draft.
-// http://www.ecma-international.org/ecma-262/6.0/#sec-reflect.enumerate
-EncodedJSValue JSC_HOST_CALL reflectObjectEnumerate(ExecState* exec)
-{
- VM& vm = exec->vm();
- auto scope = DECLARE_THROW_SCOPE(vm);
-
- JSValue target = exec->argument(0);
- if (!target.isObject())
- return JSValue::encode(throwTypeError(exec, scope, ASCIILiteral("Reflect.enumerate requires the first argument be an object")));
- scope.release();
- return JSValue::encode(JSPropertyNameIterator::create(exec, exec->lexicalGlobalObject()->propertyNameIteratorStructure(), asObject(target)));
-}
-
// https://tc39.github.io/ecma262/#sec-reflect.get
EncodedJSValue JSC_HOST_CALL reflectObjectGet(ExecState* exec)
{
Modified: trunk/Source/WebInspectorUI/ChangeLog (218783 => 218784)
--- trunk/Source/WebInspectorUI/ChangeLog 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/Source/WebInspectorUI/ChangeLog 2017-06-24 08:06:47 UTC (rev 218784)
@@ -1,3 +1,12 @@
+2017-06-24 Joseph Pecoraro <[email protected]>
+
+ Remove Reflect.enumerate
+ https://bugs.webkit.org/show_bug.cgi?id=173806
+
+ Reviewed by Yusuke Suzuki.
+
+ * UserInterface/Models/NativeFunctionParameters.js:
+
2017-06-23 Joseph Pecoraro <[email protected]>
Web Inspector: Script Timeline bubbles sometimes appear to miss large events
Modified: trunk/Source/WebInspectorUI/UserInterface/Models/NativeFunctionParameters.js (218783 => 218784)
--- trunk/Source/WebInspectorUI/UserInterface/Models/NativeFunctionParameters.js 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/NativeFunctionParameters.js 2017-06-24 08:06:47 UTC (rev 218784)
@@ -134,7 +134,6 @@
construct: "target, argumentsList, [newTarget=target]",
defineProperty: "target, propertyKey, attributes",
deleteProperty: "target, propertyKey",
- enumerate: "target",
get: "target, propertyKey, [receiver]",
getOwnPropertyDescriptor: "target, propertyKey",
getPrototypeOf: "target",
Modified: trunk/Tools/ChangeLog (218783 => 218784)
--- trunk/Tools/ChangeLog 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/Tools/ChangeLog 2017-06-24 08:06:47 UTC (rev 218784)
@@ -1,3 +1,12 @@
+2017-06-24 Joseph Pecoraro <[email protected]>
+
+ Remove Reflect.enumerate
+ https://bugs.webkit.org/show_bug.cgi?id=173806
+
+ Reviewed by Yusuke Suzuki.
+
+ * Scripts/run-jsc-stress-tests:
+
2017-06-24 Chris Fleizach <[email protected]>
AX: Cannot call setValue() on contenteditable or ARIA text controls
Modified: trunk/Tools/Scripts/run-jsc-stress-tests (218783 => 218784)
--- trunk/Tools/Scripts/run-jsc-stress-tests 2017-06-24 07:14:46 UTC (rev 218783)
+++ trunk/Tools/Scripts/run-jsc-stress-tests 2017-06-24 08:06:47 UTC (rev 218784)
@@ -1166,6 +1166,8 @@
errorHandler = simpleErrorHandler
when :fail
errorHandler = expectedFailErrorHandler
+ when :failDueToOutdatedOrBadTest
+ errorHandler = expectedFailErrorHandler
else
raise "Invalid mode: #{mode}"
end
@@ -1273,6 +1275,8 @@
when :pass
errorHandler = chakraPassFailErrorHandler
outputHandler = noisyOutputHandler
+ when :skipDueToOutdatedOrBadTest
+ return
when :skip
return
else