Title: [218784] trunk
Revision
218784
Author
[email protected]
Date
2017-06-24 01:06:47 -0700 (Sat, 24 Jun 2017)

Log Message

Remove Reflect.enumerate
https://bugs.webkit.org/show_bug.cgi?id=173806

Patch by Joseph Pecoraro <[email protected]> on 2017-06-24
Reviewed by Yusuke Suzuki.

JSTests:

* 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.

Source/_javascript_Core:

* 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.

Source/WebInspectorUI:

* UserInterface/Models/NativeFunctionParameters.js:

Tools:

* Scripts/run-jsc-stress-tests:

LayoutTests:

* inspector/model/remote-object-expected.txt:
* inspector/model/remote-object.html:
* platform/mac/inspector/model/remote-object-expected.txt:

Modified Paths

Removed Paths

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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to