Proxy all functions, except the $ objects
authorjfbastien@apple.com <jfbastien@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 4 Dec 2017 22:06:50 +0000 (22:06 +0000)
committerjfbastien@apple.com <jfbastien@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 4 Dec 2017 22:06:50 +0000 (22:06 +0000)
https://bugs.webkit.org/show_bug.cgi?id=180375

Reviewed by Saam Barati.

It looks like this test may have broken some executions because I
call some internal objects. Explicitly ignore objects whose name
starts with "$" because it's a bad idea anyways.

* stress/proxy-all-the-parameters.js:
(generateObjects):
(get throw):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225493 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JSTests/ChangeLog
JSTests/stress/proxy-all-the-parameters.js

index 79b3f17..7182b6a 100644 (file)
@@ -1,3 +1,18 @@
+2017-12-04  JF Bastien  <jfbastien@apple.com>
+
+        Proxy all functions, except the $ objects
+        https://bugs.webkit.org/show_bug.cgi?id=180375
+
+        Reviewed by Saam Barati.
+
+        It looks like this test may have broken some executions because I
+        call some internal objects. Explicitly ignore objects whose name
+        starts with "$" because it's a bad idea anyways.
+
+        * stress/proxy-all-the-parameters.js:
+        (generateObjects):
+        (get throw):
+
 2017-12-04  Saam Barati  <sbarati@apple.com>
 
         We need to leave room on the top of the stack for the FTL TailCall slow path so it doesn't overwrite things we want to retrieve when doing a stack walk when throwing an exception
index ba1a4ce..4de6ccc 100644 (file)
@@ -1,7 +1,5 @@
 const verbose = false;
 
-const ignore = ['quit', 'readline', 'waitForReport', 'flashHeapAccess', 'leaving', 'getReport'];
-
 function isPropertyOfType(obj, name, type) {
     let desc;
     desc = Object.getOwnPropertyDescriptor(obj, name)
@@ -22,6 +20,8 @@ function* generateObjects(root = this, level = 0) {
         return;
     let obj_names = getProperties(root, 'object');
     for (let obj_name of obj_names) {
+        if (obj_name.startsWith('$'))
+            continue; // Ignore internal objects.
         let obj = root[obj_name];
         yield obj;
         yield* generateObjects(obj, level + 1);
@@ -44,8 +44,6 @@ const thrower = new Proxy({}, { get() { throw 0xc0defefe; } });
 
 for (let o of getObjects()) {
     for (let f of getFunctions(o)) {
-        if (ignore.includes(f))
-            continue;
         const arityPlusOne = o[f].length + 1;
         if (verbose)
             print(`Calling ${o}['${f}'](${Array(arityPlusOne).fill("thrower")})`);