Bug 638054 - Mostly remove JS tests using watch/unwatch. r=jorendorff
authorTom Schuster <evilpies@gmail.com>
Tue, 24 Oct 2017 20:48:14 +0200
changeset 387885 31bc65f1acab36ec5abbb9b29974e279b622dff6
parent 387884 e4f864ad5779d943ce2e562764c183b1a100bba3
child 387886 a124f4901430f6db74cfc7fe3b07957a1c691b40
push id32738
push userarchaeopteryx@coole-files.de
push dateTue, 24 Oct 2017 21:58:00 +0000
treeherdermozilla-central@a124f4901430 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjorendorff
bugs638054
milestone58.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 638054 - Mostly remove JS tests using watch/unwatch. r=jorendorff
js/src/jit-test/tests/auto-regress/bug466654.js
js/src/jit-test/tests/auto-regress/bug516897.js
js/src/jit-test/tests/auto-regress/bug537854.js
js/src/jit-test/tests/auto-regress/bug560796.js
js/src/jit-test/tests/auto-regress/bug638735.js
js/src/jit-test/tests/auto-regress/bug639413.js
js/src/jit-test/tests/auto-regress/bug698899.js
js/src/jit-test/tests/auto-regress/bug746397.js
js/src/jit-test/tests/auto-regress/bug769192.js
js/src/jit-test/tests/baseline/bug843444.js
js/src/jit-test/tests/basic/bug510437.js
js/src/jit-test/tests/basic/bug605015.js
js/src/jit-test/tests/basic/bug631305.js
js/src/jit-test/tests/basic/bug662562.js
js/src/jit-test/tests/basic/bug690292.js
js/src/jit-test/tests/basic/bug696748.js
js/src/jit-test/tests/basic/bug831846.js
js/src/jit-test/tests/basic/testAssigningWatchedDeletedProperty.js
js/src/jit-test/tests/basic/testBug566556.js
js/src/jit-test/tests/basic/testBug578044.js
js/src/jit-test/tests/basic/testBug584650.js
js/src/jit-test/tests/basic/testBug780288-1.js
js/src/jit-test/tests/basic/testBug780288-2.js
js/src/jit-test/tests/basic/testEvalCalledFromWatchOverSetter.js
js/src/jit-test/tests/basic/testNonStubGetter.js
js/src/jit-test/tests/basic/testSettingWatchPointOnReadOnlyProp.js
js/src/jit-test/tests/basic/testTrueShiftTrue.js
js/src/jit-test/tests/basic/testWatchRecursion.js
js/src/jit-test/tests/cacheir/bug1350171.js
js/src/jit-test/tests/gc/bug-900405.js
js/src/jit-test/tests/gc/bug-913261.js
js/src/jit-test/tests/gc/bug-986864.js
js/src/jit-test/tests/ion/bug1063182.js
js/src/jit-test/tests/ion/bug772901.js
js/src/jit-test/tests/ion/bug774257-1.js
js/src/jit-test/tests/ion/bug774257-2.js
js/src/jit-test/tests/ion/bug779631.js
js/src/jit-test/tests/ion/bug783590.js
js/src/jit-test/tests/jaeger/bug550665.js
js/src/jit-test/tests/jaeger/bug557063.js
js/src/jit-test/tests/jaeger/bug588338.js
js/src/jit-test/tests/jaeger/bug625438.js
js/src/jit-test/tests/jaeger/bug630366.js
js/src/jit-test/tests/jaeger/recompile/bug641225.js
js/src/jit-test/tests/pic/fuzz1.js
js/src/jit-test/tests/pic/fuzz3.js
js/src/jit-test/tests/pic/watch1.js
js/src/jit-test/tests/pic/watch1a.js
js/src/jit-test/tests/pic/watch2.js
js/src/jit-test/tests/pic/watch2a.js
js/src/jit-test/tests/pic/watch3.js
js/src/jit-test/tests/pic/watch3a.js
js/src/jit-test/tests/pic/watch3b.js
js/src/jit-test/tests/pic/watch4.js
js/src/jit-test/tests/pic/watch5.js
js/src/jit-test/tests/profiler/bug1140643.js
js/src/tests/ecma_5/Array/frozen-dense-array.js
js/src/tests/ecma_5/extensions/watch-array-length.js
js/src/tests/ecma_5/extensions/watch-inherited-property.js
js/src/tests/ecma_5/extensions/watch-replaced-setter.js
js/src/tests/ecma_5/extensions/watch-setter-become-setter.js
js/src/tests/ecma_5/extensions/watch-value-prop-becoming-setter.js
js/src/tests/ecma_5/extensions/watchpoint-deletes-JSPropertyOp-setter.js
js/src/tests/js1_2/Objects/watch-deprecated.js
js/src/tests/js1_5/Object/regress-362872-01.js
js/src/tests/js1_5/Object/regress-362872-02.js
js/src/tests/js1_5/Regress/regress-127243.js
js/src/tests/js1_5/Regress/regress-213482.js
js/src/tests/js1_5/Regress/regress-240577.js
js/src/tests/js1_5/Regress/regress-355341.js
js/src/tests/js1_5/Regress/regress-355344.js
js/src/tests/js1_5/Regress/regress-361467.js
js/src/tests/js1_5/Regress/regress-361617.js
js/src/tests/js1_5/Regress/regress-385393-06.js
js/src/tests/js1_5/Regress/regress-506567.js
js/src/tests/js1_5/extensions/regress-303277.js
js/src/tests/js1_5/extensions/regress-355339.js
js/src/tests/js1_5/extensions/regress-361346.js
js/src/tests/js1_5/extensions/regress-361360.js
js/src/tests/js1_5/extensions/regress-361552.js
js/src/tests/js1_5/extensions/regress-361558.js
js/src/tests/js1_5/extensions/regress-361571.js
js/src/tests/js1_5/extensions/regress-361856.js
js/src/tests/js1_5/extensions/regress-361964.js
js/src/tests/js1_5/extensions/regress-385134.js
js/src/tests/js1_5/extensions/regress-385393-09.js
js/src/tests/js1_5/extensions/regress-390597.js
js/src/tests/js1_5/extensions/regress-420612.js
js/src/tests/js1_5/extensions/regress-435345-01.js
js/src/tests/js1_5/extensions/regress-454040.js
js/src/tests/js1_5/extensions/regress-454142.js
js/src/tests/js1_5/extensions/regress-455413.js
js/src/tests/js1_5/extensions/regress-465145.js
js/src/tests/js1_5/extensions/regress-472787.js
js/src/tests/js1_5/extensions/regress-488995.js
js/src/tests/js1_6/Regress/regress-476655.js
js/src/tests/js1_6/extensions/regress-457521.js
js/src/tests/js1_6/extensions/regress-479567.js
js/src/tests/js1_7/extensions/regress-453955.js
js/src/tests/js1_7/extensions/regress-473282.js
js/src/tests/js1_7/regress/regress-385133-01.js
js/src/tests/js1_8/extensions/regress-394709.js
js/src/tests/js1_8/extensions/regress-481989.js
js/src/tests/js1_8_1/extensions/regress-452498-193.js
js/src/tests/js1_8_1/extensions/regress-452498-196.js
js/src/tests/js1_8_1/extensions/regress-520572.js
js/src/tests/js1_8_1/regress/regress-452498-160.js
js/src/tests/js1_8_5/extensions/regress-604781-1.js
js/src/tests/js1_8_5/extensions/regress-604781-2.js
js/src/tests/js1_8_5/extensions/regress-627984-1.js
js/src/tests/js1_8_5/extensions/regress-627984-2.js
js/src/tests/js1_8_5/extensions/regress-627984-3.js
js/src/tests/js1_8_5/extensions/regress-627984-4.js
js/src/tests/js1_8_5/extensions/regress-627984-5.js
js/src/tests/js1_8_5/extensions/regress-627984-6.js
js/src/tests/js1_8_5/extensions/regress-627984-7.js
js/src/tests/js1_8_5/extensions/regress-631723.js
js/src/tests/js1_8_5/extensions/regress-636697.js
js/src/tests/js1_8_5/extensions/regress-637985.js
js/src/tests/js1_8_5/extensions/regress-691746.js
js/src/tests/js1_8_5/extensions/watch-undefined-setter.js
js/src/tests/js1_8_5/regress/regress-533876.js
js/src/tests/js1_8_5/regress/regress-548276.js
js/src/tests/js1_8_5/regress/regress-584648.js
js/src/tests/js1_8_5/regress/regress-635195.js
js/src/tests/js1_8_5/regress/regress-636394.js
deleted file mode 100644
--- a/js/src/jit-test/tests/auto-regress/bug466654.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// |jit-test| error:TypeError; need-for-each
-
-// Binary: cache/js-dbg-32-29add08d84ae-linux
-// Flags: -j
-//
-this.watch('y',  /x/g );
-for each (y in ['q', 'q', 'q']) continue;
-gc();
deleted file mode 100644
--- a/js/src/jit-test/tests/auto-regress/bug516897.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// Binary: cache/js-dbg-64-38754465ffde-linux
-// Flags:
-//
-this.__defineSetter__("x", gc);
-this.watch("x",function(){return});
-x = 3;
deleted file mode 100644
--- a/js/src/jit-test/tests/auto-regress/bug537854.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// Binary: cache/js-dbg-64-9d51f2a931f7-linux
-// Flags:
-//
-({x:function(){}}).watch('x',function(){});
deleted file mode 100644
--- a/js/src/jit-test/tests/auto-regress/bug560796.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// Binary: cache/js-dbg-64-a6d7a5677b4c-linux
-// Flags:
-//
-this.__defineSetter__("x", function(){})
-this.watch("x", "".localeCompare)
-window = x
-Object.defineProperty(this, "x", ({
-    set: window
-}))
--- a/js/src/jit-test/tests/auto-regress/bug638735.js
+++ b/js/src/jit-test/tests/auto-regress/bug638735.js
@@ -1,15 +1,14 @@
 // Binary: cache/js-dbg-64-290712e55ade-linux
 // Flags: -j
 //
 var o9 = Function.prototype;
 var o13 = Array;
 function f5(o) {
-o.watch('p3', function() {});
 ox1 = new Proxy(o, {});
 }
 f5(o9);
 f5(o13);
 var o0 = [];
 function f3(o) {
             var prop = Object.getOwnPropertyNames(ox1)[0];
             if (prop) { Object.defineProperty(ox1, prop, {configurable: true,enumerable: true,unused: 1 }); }
deleted file mode 100644
--- a/js/src/jit-test/tests/auto-regress/bug639413.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// |jit-test| error:TypeError
-
-// Binary: cache/js-dbg-32-1c8e91b2e3a4-linux
-// Flags:
-//
-a = evalcx("lazy");
-a.watch("x", function() {});
-({}).watch("x", function() {});
-a.__defineGetter__("y", {});
deleted file mode 100644
--- a/js/src/jit-test/tests/auto-regress/bug698899.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// Binary: cache/js-dbg-32-f951e9151626-linux
-// Flags: -m -n
-//
-o = evalcx("lazy").__proto__
-gc()
-try {
-    o.watch()
-} catch (e) {}
-o.constructor()
deleted file mode 100644
--- a/js/src/jit-test/tests/auto-regress/bug746397.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// |jit-test| error:ReferenceError
-
-// Binary: cache/js-dbg-64-67bf9a4a1f77-linux
-// Flags: --ion-eager
-//
-
-(function () {
-  var a = ['x', 'y'];
-  obj.watch(a[+("0")], counter);
-})();
deleted file mode 100644
--- a/js/src/jit-test/tests/auto-regress/bug769192.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// |jit-test| error:TypeError
-
-// Binary: cache/js-dbg-64-bf8f2961d0cc-linux
-// Flags:
-//
-Object.watch.call(new Uint8ClampedArray, "length", function() {});
deleted file mode 100644
--- a/js/src/jit-test/tests/baseline/bug843444.js
+++ /dev/null
@@ -1,8 +0,0 @@
-gczeal(8, 1)
-function recurse(x) {
-    recurse;
-    if (x < 20)
-	recurse(x + 1);
-};
-this.watch(5, (function () {}))
-recurse(0)
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug510437.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Don't crash or assert.
-
-var d;
-this.watch("d", eval);
-(function () {
-    (eval("\
-    (function () {\
-        for (let x = 0; x < 2; ++x) {\
-            d = x\
-        }\
-    })\
-"))()
-})()
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug605015.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// |jit-test| error: TypeError 
-// don't assert
-
-print(this.watch("x",
-function() {
-  Object.defineProperty(this, "x", ({
-    get: (Int8Array)
-  }))
-}))(x = /x/)
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug631305.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var n = 0;
-var a = [];
-for (var i = 0; i < 20; i++)
-    a[i] = {};
-a[18].watch("p", function () { n++; });
-delete a[18].p;
-for (var i = 0; i < 20; i++)
-    a[i].p = 0;
-assertEq(n, 1);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug662562.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// |jit-test| error: TypeError
-function f(o) {
-    o.watch("x", this);
-}
-var c = evalcx("");
-f(c);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug690292.js
+++ /dev/null
@@ -1,12 +0,0 @@
-
-done = false;
-try {
-    function x() {}
-    print(this.watch("d", Object.create))
-    var d = {}
-} catch (e) {}
-try {
-  eval("d = ''")
-  done = true;
-} catch (e) {}
-assertEq(done, false);
--- a/js/src/jit-test/tests/basic/bug696748.js
+++ b/js/src/jit-test/tests/basic/bug696748.js
@@ -1,11 +1,8 @@
-try {
-this.watch("b", "".substring);
-} catch(exc1) {}
 eval("\
 var URI = '';\
 test();\
 function test() {\
   URI += '<zcti application=\"xxxx_demo\">';\
   URI += '<pstn_data>';\
   URI += '<dnis>877-485-xxxx</dnis>';\
   URI += '</pstn_data>';\
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug831846.js
+++ /dev/null
@@ -1,3 +0,0 @@
-// |jit-test| error:TypeError
-
-evalcx('').watch("", /()/);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/testAssigningWatchedDeletedProperty.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var o = {};
-o.watch("p", function() { });
-
-for (var i = 0; i < 10; i++) {
-    o.p = 123;
-    delete o.p;
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/testBug566556.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var msg = "";
-try {
-    this.__defineSetter__('x', Object.create);
-    this.watch('x', function() {});
-    x = 3;
-} catch (e) {
-    msg = e.toString();
-}
-assertEq(msg, "TypeError: undefined is not an object or null");
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/testBug578044.js
+++ /dev/null
@@ -1,13 +0,0 @@
-this.watch("x", Object.create)
-try {
-  (function() {
-    this.__defineGetter__("x",
-    function() {
-      return this
-    })
-  })()
-} catch(e) {}
-Object.defineProperty(x, "x", ({
-  set: Uint16Array
-}))
-
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/testBug584650.js
+++ /dev/null
@@ -1,9 +0,0 @@
-if (typeof gczeal != "function")
-    gczeal = function() {}
-
-// don't crash
-x = (evalcx('lazy'))
-x.watch("", function () {})
-gczeal(1)
-for (w in x) {}
-
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/testBug780288-1.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// |jit-test| need-for-each
-
-s = newGlobal()
-try {
-  evalcx("\
-	Object.defineProperty(this,\"i\",{enumerable:true,get:function(){t}});\
-	for each(y in this)true\
-  ", s)
-} catch (e) {}
-try {
-  evalcx("\
-	for(z=0,(7).watch(\"\",eval);;g){\
-	  if(z=1){({t:function(){}})\
-	}\
-	", s)
-} catch (e) {}
-try {
-  evalcx("\
-	Object.defineProperty(this,\"g2\",{get:function(){return this}});\
-	g2.y()\
-  ", s)
-} catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/testBug780288-2.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// |jit-test| need-for-each
-
-s = newGlobal()
-try {
-  evalcx("\
-	Object.defineProperty(this,\"i\",{enumerable:true,get:function(){t}});\
-	for each(y in this)true\
-  ", s)
-} catch (e) {}
-try {
-  evalcx("\
-	for(z=0,(7).watch(\"\",eval);;g){\
-	  if(z=1){({t:function(){}})\
-	}\
-	", s)
-} catch (e) {}
-try {
-  evalcx("\
-	Object.defineProperty(this,\"g2\",{get:function(){return this}});\
-	g2.y(\"\")\
-  ", s)
-} catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/testEvalCalledFromWatchOverSetter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-this.__defineSetter__("x", function(){});
-this.watch("x", eval);
-x = 0;
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/testNonStubGetter.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// |jit-test| need-for-each
-
-function testNonStubGetter() {
-    { let [] = []; (this.watch("x", function(p, o, n) { return /a/g.exec(p, o, n); })); };
-    (function () { (eval("(function(){for each (x in [1, 2, 2]);});"))(); })();
-    this.unwatch("x");
-    return "ok";
-}
-assertEq(testNonStubGetter(), "ok");
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/testSettingWatchPointOnReadOnlyProp.js
+++ /dev/null
@@ -1,7 +0,0 @@
-for (var i = 0; i < 5; ++i) {
-    var o = {}
-    Object.defineProperty(o, 'x', { value:"cow", writable:false });
-    var r = o.watch('x', function() {});
-    assertEq(r, undefined);
-    o.x = 4;
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/testTrueShiftTrue.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Test no assert or crash from outer recorders (bug 465145)
-function testBug465145() {
-    this.__defineSetter__("x", function(){});
-    this.watch("x", function(){});
-    y = this;
-    for (var z = 0; z < 2; ++z) { x = y };
-    this.__defineSetter__("x", function(){});
-    for (var z = 0; z < 2; ++z) { x = y };
-}
-
-function testTrueShiftTrue() {
-    var a = new Array(5);
-    for (var i=0;i<5;++i) a[i] = "" + (true << true);
-    return a.join(",");
-}
-assertEq(testTrueShiftTrue(), "2,2,2,2,2");
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/testWatchRecursion.js
+++ /dev/null
@@ -1,63 +0,0 @@
-// Test that the watch handler is not called recursively for the same object
-// and property.
-(function() {
-    var obj1 = {}, obj2 = {};
-    var handler_entry_count = 0;
-    var handler_exit_count = 0;
-
-    obj1.watch('x', handler);
-    obj1.watch('y', handler);
-    obj2.watch('x', handler);
-    obj1.x = 1;
-    assertEq(handler_entry_count, 3);
-    assertEq(handler_exit_count, 3);
-
-    function handler(id) {
-        handler_entry_count++;
-        assertEq(handler_exit_count, 0);
-        switch (true) {
-          case this === obj1 && id === "x":
-            assertEq(handler_entry_count, 1);
-            obj2.x = 3;
-            assertEq(handler_exit_count, 2);
-            break;
-          case this === obj2 && id === "x":
-            assertEq(handler_entry_count, 2);
-            obj1.y = 4;
-            assertEq(handler_exit_count, 1);
-            break;
-          default:
-            assertEq(this, obj1);
-            assertEq(id, "y");
-            assertEq(handler_entry_count, 3);
-
-            // We expect no more watch handler invocations
-            obj1.x = 5;
-            obj1.y = 6;
-            obj2.x = 7;
-            assertEq(handler_exit_count, 0);
-            break;
-        }
-        ++handler_exit_count;
-        assertEq(handler_entry_count, 3);
-    }
-})();
-
-
-// Test that run-away recursion in watch handlers is properly handled.  
-(function() {
-    var obj = {};
-    var i = 0;
-    try {
-        handler();
-        throw new Error("Unreachable");
-    } catch(e) {
-        assertEq(e instanceof InternalError, true);
-    }
-    
-    function handler() {
-        var prop = "a" + ++i;
-        obj.watch(prop, handler);
-        obj[prop] = 2;
-    }
-})();
deleted file mode 100644
--- a/js/src/jit-test/tests/cacheir/bug1350171.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function test() {
-    var o = {};
-    o.watch('x', test);
-    try {
-        o.x = 3;
-    } catch(e) {}
-}
-test();
deleted file mode 100644
--- a/js/src/jit-test/tests/gc/bug-900405.js
+++ /dev/null
@@ -1,3 +0,0 @@
-(function() {
-    [{ "9": [] }.watch([], function(){})]
-})()
deleted file mode 100644
--- a/js/src/jit-test/tests/gc/bug-913261.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// |jit-test| error: InternalError: too much recursion
-(function f() {
-    "".watch(2, function() {});
-    f();
-})()
deleted file mode 100644
--- a/js/src/jit-test/tests/gc/bug-986864.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// |jit-test| slow
-function x() {}
-for (var j = 0; j < 9999; ++j) {
-    (function() {
-        x += x.watch("endsWith", ArrayBuffer);
-        return 0 >> Function(x)
-    })()
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/ion/bug1063182.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// |jit-test| error: ReferenceError
-
-eval("(function() { " + "\
-var o = {};\
-o.watch('p', function() { });\
-for (var i = 0; i < 10; \u5ede ++)\
-    o.p = 123;\
-" + " })();");
--- a/js/src/jit-test/tests/ion/bug772901.js
+++ b/js/src/jit-test/tests/ion/bug772901.js
@@ -1,7 +1,7 @@
 // vim: set ts=8 sts=4 et sw=4 tw=99:
 
 function f(x) {
     delete ((x)++);
     arguments[0] !== undefined;
 }
-f(1, x = [f.ArrayBuffer,unwatch.Int32Array], this, this, this) ;
+f(1, x = [f.ArrayBuffer, undefined], this, this, this) ;
deleted file mode 100644
--- a/js/src/jit-test/tests/ion/bug774257-1.js
+++ /dev/null
@@ -1,8 +0,0 @@
-Object.defineProperty(Object.prototype, 'x', { 
-    set: function() { evalcx('lazy'); } 
-});
-var obj = {};
-obj.watch("x", function (id, oldval, newval) {});
-for (var str in 'A') {
-    obj.x = 1;
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/ion/bug774257-2.js
+++ /dev/null
@@ -1,10 +0,0 @@
-Object.defineProperty(Object.prototype, 'x', { 
-    set: function() { evalcx('lazy'); } 
-});
-var obj = {};
-var prot = {};
-obj.__proto__ = prot;
-obj.watch("x", function (id, oldval, newval) {});
-for (var str in 'A') {
-    obj.x = 1;
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/ion/bug779631.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var flag = 0;
-var a = {};
-Object.defineProperty(a, "value", {set: function(x) {}});
-a.watch("value", function(){flag++;});
-
-for(var i = 0; i < 100; i++) {
-    a.value = i;
-    assertEq(flag, i+1);
-}
--- a/js/src/jit-test/tests/ion/bug783590.js
+++ b/js/src/jit-test/tests/ion/bug783590.js
@@ -2,13 +2,12 @@
 
 var glob = this;
 var arr = [];
 Object.defineProperty(arr, 0, {
   get: (function() {
     glob.__proto__;
   })
 });
-this.watch("s", function() {});
 try {
   arr.pop();
 } catch (e) {}
 arr.pop();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug550665.js
+++ /dev/null
@@ -1,8 +0,0 @@
-(function () {
-  var a;
-  eval("for(w in ((function(x,y){b:0})())) ;");
-})();
-
-this.__defineSetter__("l", function() { gc() });
-this.watch("l", function(x) { yield {} });
-l = true;
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug557063.js
+++ /dev/null
@@ -1,7 +0,0 @@
-(function() {
-  for (a = 0; a < 2; a++)
-    ''.watch("", function() {})
-})()
-
-/* Don't crash or assert. */
-
--- a/js/src/jit-test/tests/jaeger/bug588338.js
+++ b/js/src/jit-test/tests/jaeger/bug588338.js
@@ -4,13 +4,12 @@ function f() {
 }
 (x = new Proxy(Function, (function(x) {
   return {
     get: function(r, b) {
       return x[b]
     }
   }
 })(/x/)))
-for (z = 0; z < 100; x.unwatch(), z++)
 for (e in [0]) {
   gczeal(2)
 } ( [1,2,3])("")
 
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug625438.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// vim: set ts=8 sts=4 et sw=4 tw=99:
-
-var count = 0;
-this.watch("x", function() {
-    count++;
-});
-for(var i=0; i<10; i++) {
-    x = 2;
-}
-assertEq(count, 10);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug630366.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var o = {};
-for(var i=0; i<5; i++) {
-    o.p = 2;
-    o.watch("p", function() { });
-    o.p = 2;
-    delete o.p;
-}
--- a/js/src/jit-test/tests/jaeger/recompile/bug641225.js
+++ b/js/src/jit-test/tests/jaeger/recompile/bug641225.js
@@ -113,17 +113,16 @@ for(var o2 in f5) {
     Object.freeze(f0);
     f4(o3);
     o7.p0 = o3;
     f1(f5);
     f4(o10);
     f2(o5);
     f2(o5);
     f0(o3);
-    o9.watch('p3', function() {});
     o8[o8] = o8;
     f0(o5);
     f1(o6);
     f2 = Object.create(o5);
     var key = Object.getOwnPropertyNames(o11)[23]; if(key) f2 = o11[key];
     f5(o9);
     o12 = o6.bind(o12, o12, o12);
     f5(f4);
deleted file mode 100644
--- a/js/src/jit-test/tests/pic/fuzz1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-(function() {
-  for (a = 0; a < 2; a++)
-    ''.watch("", function() {})
-})()
deleted file mode 100644
--- a/js/src/jit-test/tests/pic/fuzz3.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// |jit-test| need-for-each
-
-for each(let w in [[], 0, [], 0]) {
-  w.unwatch()
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/pic/watch1.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// assignments to watched objects must not be cached
-var obj = {x: 0};
-var hits = 0;
-obj.watch("x", function (id, oldval, newval) { hits++; return newval; });
-for (var i = 0; i < 10; i++)
-    obj.x = i;
-assertEq(hits, 10);
deleted file mode 100644
--- a/js/src/jit-test/tests/pic/watch1a.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// assignments to watched objects must not be traced
-var hits = 0;
-function counter(id, oldval, newval) {
-    hits++;
-    return newval;
-}
-
-(function () {
-    var obj = {x: 0, y: 0};
-    var a = ['x', 'y'];
-    obj.watch('z', counter);
-    for (var i = 0; i < 14; i++) {
-        obj.watch(a[+(i > 8)], counter);
-        obj.y = i;
-    }
-})();
-assertEq(hits, 5);
deleted file mode 100644
--- a/js/src/jit-test/tests/pic/watch2.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// assignments to watched properties via ++ must not be cached
-var obj = {x: 0};
-var hits = 0;
-obj.watch("x", function (id, oldval, newval) { hits++; return newval; });
-for (var i = 0; i < 10; i++)
-    obj.x++;
-assertEq(hits, 10);
-
deleted file mode 100644
--- a/js/src/jit-test/tests/pic/watch2a.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// assignments to watched properties via ++ must not be traced
-var hits = 0;
-function counter(id, oldval, newval) {
-    hits++;
-    return newval;
-}
-
-(function () {
-    var obj = {x: 0, y: 0};
-    var a = ['x', 'y'];
-    obj.watch('z', counter);
-    for (var i = 0; i < 14; i++) {
-        obj.watch(a[+(i > 8)], counter);
-        obj.y++;
-    }
-})();
-assertEq(hits, 5);
-
deleted file mode 100644
--- a/js/src/jit-test/tests/pic/watch3.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// assignment to watched global properties must not be cached
-x = 0;
-var hits = 0;
-this.watch("x", function (id, oldval, newval) { hits++; return newval; });
-for (var i = 0; i < 10; i++)
-    x = i;
-assertEq(hits, 10);
deleted file mode 100644
--- a/js/src/jit-test/tests/pic/watch3a.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// assignment to watched global properties must not be traced
-var hits = 0;
-function counter(id, oldval, newval) {
-    hits++;
-    return newval;
-}
-
-var x = 0;
-var y = 0;
-(function () {
-    var a = ['x', 'y'];
-    this.watch('z', counter);
-    for (var i = 0; i < 14; i++) {
-        this.watch(a[+(i > 8)], counter);
-        y = 1;
-    }
-})();
-assertEq(hits, 5);
-
deleted file mode 100644
--- a/js/src/jit-test/tests/pic/watch3b.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// assignment to watched global properties must not be traced
-var hits = 0;
-function counter(id, oldval, newval) {
-    hits++;
-    return newval;
-}
-
-var x = 0;
-var y = 0;
-function f() {
-    var a = [{}, this];
-    for (var i = 0; i < 14; i++) {
-        print(shapeOf(this));
-        Object.prototype.watch.call(a[+(i > 8)], "y", counter);
-        y++;
-    }
-}
-f();
-assertEq(hits, 5);
-
deleted file mode 100644
--- a/js/src/jit-test/tests/pic/watch4.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// adding assignment + watchpoint vs. caching
-var hits = 0;
-var obj = {};
-obj.watch("x", function (id, oldval, newval) { hits++; return newval; });
-for (var i = 0; i < 10; i++) {
-    obj.x = 1;
-    delete obj.x;
-}
-assertEq(hits, 10);
deleted file mode 100644
--- a/js/src/jit-test/tests/pic/watch5.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// test against future pic support for symbols
-
-// assignments to watched objects must not be cached
-var obj = {};
-var x = Symbol.for("x");
-obj[x] = 0;
-var hits = 0;
-obj.watch(x, function (id, oldval, newval) { hits++; return newval; });
-for (var i = 0; i < 10; i++)
-    obj[x] = i;
-assertEq(hits, 10);
-
-// assignments to watched properties via ++ must not be cached
-hits = 0;
-for (var i = 0; i < 10; i++)
-    obj[x]++;
-assertEq(hits, 10);
-
-// adding assignment + watchpoint vs. caching
-hits = 0;
-obj = {};
-obj.watch(x, function (id, oldval, newval) { hits++; return newval; });
-for (var i = 0; i < 10; i++) {
-    obj[x] = 1;
-    delete obj[x];
-}
-assertEq(hits, 10);
deleted file mode 100644
--- a/js/src/jit-test/tests/profiler/bug1140643.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// |jit-test| allow-oom; allow-unhandlable-oom
-enableGeckoProfiling();
-loadFile('\
-for (var i = 0; i < 2; i++) {\
-    obj = { m: function () {} };\
-    obj.watch("m", function () { float32 = 0 + obj.foo; });\
-    obj.m = 0;\
-}\
-');
-gcparam("maxBytes", gcparam("gcBytes") + (1)*1024);
-newGlobal("same-compartment");
-function loadFile(lfVarx) {
-  evaluate(lfVarx, { noScriptRval : true, isRunOnce : true }); 
-}
--- a/js/src/tests/ecma_5/Array/frozen-dense-array.js
+++ b/js/src/tests/ecma_5/Array/frozen-dense-array.js
@@ -33,29 +33,10 @@ assertThrowsInstanceOf(() => a.splice(Ma
 // Shouldn't throw, since this is not strict mode, but shouldn't change the
 // value of the property.
 a.length = 5;
 a[2] = "foo";
 assertEq(delete a[0], false);
 
 assertArrayIsExpected();
 
-var watchpointCalled = false;
-// NOTE: Be careful with the position of this test, since this sparsifies the
-// elements and you might not test what you think you're testing otherwise.
-a.watch(2, function(prop, oldValue, newValue) {
-  watchpointCalled = true;
-  assertEq(prop, 2);
-  assertEq(oldValue, 1);
-  assertEq(newValue, "foo");
-});
-
-assertArrayIsExpected();
-
-a.length = 5;
-a[2] = "foo";
-assertEq(watchpointCalled, true);
-assertEq(delete a[0], false);
-
-assertArrayIsExpected();
-
 if (typeof reportCompare === "function")
   reportCompare(true, true);
deleted file mode 100644
--- a/js/src/tests/ecma_5/extensions/watch-array-length.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/licenses/publicdomain/
- */
-
-var hitCount;
-function watcher(p,o,n) { hitCount++; return n; }
-
-var a = [1];
-a.watch('length', watcher);
-hitCount = 0;
-a.length = 0;
-reportCompare(1, hitCount, "lenient; configurable: watchpoint hit");
-
-var b = Object.defineProperty([1],'0',{configurable:false});
-b.watch('length', watcher);
-hitCount = 0;
-var result;
-try {
-    b.length = 0;    
-    result = "no error";
-} catch (x) {
-    result = x.toString();
-}
-reportCompare(1, hitCount, "lenient; non-configurable: watchpoint hit");
-reportCompare(1, b.length, "lenient; non-configurable: length unchanged");
-reportCompare("no error", result, "lenient; non-configurable: no error thrown");
-
-var c = Object.defineProperty([1],'0',{configurable:false});
-c.watch('length', watcher);
-hitCount = 0;
-var threwTypeError;
-try {
-    (function(){'use strict'; c.length = 0;})();
-    threwTypeError = false;
-} catch (x) {
-    threwTypeError = x instanceof TypeError;
-}
-reportCompare(1, hitCount, "strict; non-configurable: watchpoint hit");
-reportCompare(1, c.length, "strict; non-configurable: length unchanged");
-reportCompare(true, threwTypeError, "strict; non-configurable: TypeError thrown");
deleted file mode 100644
--- a/js/src/tests/ecma_5/extensions/watch-inherited-property.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/licenses/publicdomain/
- */
-
-/* Create a prototype object with a setter property. */
-var protoSetterCount;
-var proto = ({ set x(v) { protoSetterCount++; } });
-
-/* Put a watchpoint on that setter. */
-var protoWatchCount;
-proto.watch('x', function() { protoWatchCount++; });
-
-/* Make an object with the above as its prototype. */
-function C() { }
-C.prototype = proto;
-var o = new C();
-
-/*
- * Set a watchpoint on the property in the inheriting object. We have
- * defined this to mean "duplicate the property, setter and all, in the
- * inheriting object." I don't think debugging observation mechanisms
- * should mutate the program being run, but that's what we've got.
- */
-var oWatchCount;
-o.watch('x', function() { oWatchCount++; });
-
-/*
- * Assign to the property. This should trip the watchpoint on the inheriting object and
- * the setter.
- */
-protoSetterCount = protoWatchCount = oWatchCount = 0;
-o.x = 1;
-assertEq(protoWatchCount, 0);
-assertEq(oWatchCount, 1);
-assertEq(protoSetterCount, 1);
-
-reportCompare(true, true);
deleted file mode 100644
--- a/js/src/tests/ecma_5/extensions/watch-replaced-setter.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/licenses/publicdomain/
- */
-
-/* A stock watcher function. */
-var watcherCount;
-function watcher(id, oldval, newval) { watcherCount++; return newval; }
-
-/* Create an object with a JavaScript setter. */
-var setterCount;
-var o = { w:2, set x(v) { setterCount++; } };
-
-/*
- * Put the object in dictionary mode, so that JSObject::putProperty will 
- * mutate its shapes instead of creating new ones.
- */
-delete o.w;
-
-/*
- * Place a watchpoint on the property. The watchpoint structure holds the
- * original JavaScript setter, and a pointer to the shape.
- */
-o.watch('x', watcher);
-
-/*
- * Replace the accessor property with a value property. The shape's setter
- * should become a non-JS setter, js_watch_set, and the watchpoint
- * structure's saved setter should be updated (in this case, cleared).
- */
-Object.defineProperty(o, 'x', { value:3,
-                                writable:true,
-                                enumerable:true,
-                                configurable:true });
-
-/*
- * Assign to the property. This should trigger js_watch_set, which should
- * call the handler, and then see that there is no JS-level setter to pass
- * control on to, and return.
- */
-watcherCount = setterCount = 0;
-o.x = 3;
-assertEq(watcherCount, 1);
-assertEq(setterCount, 0);
-
-reportCompare(true, true);
deleted file mode 100644
--- a/js/src/tests/ecma_5/extensions/watch-setter-become-setter.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/licenses/publicdomain/
- */
-
-/* Create an object with a JavaScript setter. */
-var firstSetterCount;
-var o = { w:2, set x(v) { firstSetterCount++; } };
-
-/*
- * Put the object in dictionary mode, so that JSObject::putProperty will 
- * mutate its shapes instead of creating new ones.
- */
-delete o.w;
-
-/* A stock watcher function. */
-var watcherCount;
-function watcher(id, oldval, newval) { watcherCount++; return newval; }
-
-/*
- * Place a watchpoint on the property. The property's shape now has the
- * watchpoint setter, with the original setter saved in the watchpoint
- * structure.
- */
-o.watch('x', watcher);
-
-/*
- * Replace the setter with a new setter. The shape should get updated to
- * refer to the new setter, and then the watchpoint setter should be
- * re-established.
- */
-var secondSetterCount;
-Object.defineProperty(o, 'x', { set: function () { secondSetterCount++ } });
-
-/*
- * Assign to the property. This should trigger the watchpoint and the new setter.
- */
-watcherCount = firstSetterCount = secondSetterCount = 0;
-o.x = 3;
-assertEq(watcherCount, 1);
-assertEq(firstSetterCount, 0);
-assertEq(secondSetterCount, 1);
-
-reportCompare(true, true);
deleted file mode 100644
--- a/js/src/tests/ecma_5/extensions/watch-value-prop-becoming-setter.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/licenses/publicdomain/
- */
-
-/* A stock watcher function. */
-var watcherCount;
-function watcher(id, old, newval) {
-    watcherCount++;
-    return newval; 
-}
-
-/* Create an object with a value property. */
-var o = { w:2, x:3 };
-
-/*
- * Place a watchpoint on the value property. The watchpoint structure holds
- * the original JavaScript setter, and a pointer to the shape.
- */
-o.watch('x', watcher);
-
-/*
- * Put the object in dictionary mode, so that JSObject::putProperty will 
- * mutate its shapes instead of creating new ones.
- */
-delete o.w;
-
-/*
- * Replace the value property with a setter.
- */
-var setterCount;
-o.__defineSetter__('x', function() { setterCount++; });
-
-/*
- * Trigger the watchpoint. The watchpoint handler should run, and then the
- * setter should run.
- */
-watcherCount = setterCount = 0;
-o.x = 4;
-assertEq(watcherCount, 1);
-assertEq(setterCount, 1);
-
-reportCompare(true, true);
deleted file mode 100644
--- a/js/src/tests/ecma_5/extensions/watchpoint-deletes-JSPropertyOp-setter.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/licenses/publicdomain/
- */
-
-function make_watcher(name) {
-    return function (id, oldv, newv) {
-        print("watched " + name + "[0]");
-    };
-}
-
-var o, p;
-function f(flag) {
-    if (flag) {
-        o = arguments;
-    } else {
-        p = arguments;
-        o.watch(0, make_watcher('o'));
-        p.watch(0, make_watcher('p'));
-
-        /*
-         * Previously, the watchpoint implementation actually substituted its magic setter
-         * functions for the setters of shared shapes, and then 1) carefully ignored calls
-         * to its magic setter from unrelated objects, and 2) avoided restoring the
-         * original setter until all watchpoints on that shape had been removed.
-         * 
-         * However, when the watchpoint code began using JSObject::changeProperty and
-         * js_ChangeNativePropertyAttrs to change shapes' setters, the shape tree code
-         * became conscious of the presence of watchpoints, and shared shapes between
-         * objects only when their watchpoint nature coincided. Clearing the magic setter
-         * from one object's shape would not affect other objects, because the
-         * watchpointed and non-watchpointed shapes were distinct if they were shared.
-         * 
-         * Thus, the first unwatch call must go ahead and fix p's shape, even though a
-         * watchpoint exists on the same shape in o. o's watchpoint's presence shouldn't
-         * cause 'unwatch' to leave p's magic setter in place.
-         */
-
-        /* DropWatchPointAndUnlock would see o's watchpoint, and not change p's property. */
-        p.unwatch(0);
-
-        /* DropWatchPointAndUnlock would fix o's property, but not p's; p's setter would be gone. */
-        o.unwatch(0);
-
-        /* This would fail to invoke the arguments object's setter. */
-        p[0] = 4;
-
-        /* And the formal parameter would not get updated. */
-        assertEq(flag, 4);
-    }
-}
-
-f(true);
-f(false);
-
-reportCompare(true, true);
deleted file mode 100644
--- a/js/src/tests/js1_2/Objects/watch-deprecated.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// |reftest| skip-if(!xulRuntime.shell)
-
-enableLastWarning();
-
-var g = newGlobal();
-g.eval("({}).watch('x', function(){})");
-
-var warning = getLastWarning();
-assertEq(warning.name, "Warning");
-assertEq(warning.message.includes("watch"), true, "warning should mention watch");
-
-clearLastWarning();
-
-g = newGlobal();
-g.eval("({}).unwatch('x')");
-
-warning = getLastWarning();
-assertEq(warning.name, "Warning");
-assertEq(warning.message.includes("watch"), true, "warning should mention watch");
-
-clearLastWarning();
-
-reportCompare(0, 0);
deleted file mode 100644
--- a/js/src/tests/js1_5/Object/regress-362872-01.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 362872;
-var summary = 'script should not drop watchpoint that is in use';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
- 
-  function exploit() {
-    var rooter = {}, object = {}, filler1 = "", filler2 = "\u5555";
-    for(var i = 0; i < 32/2-2; i++) { filler1 += "\u5050"; }
-    object.watch("foo", function(){
-		   object.unwatch("foo");
-		   object.unwatch("foo");
-		   for(var i = 0; i < 8 * 1024; i++) {
-		     rooter[i] = filler1 + filler2;
-		   }
-		 });
-    object.foo = "bar";
-  }
-  exploit();
-
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_5/Object/regress-362872-02.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/*
- * Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/licenses/publicdomain/
- * Contributor: Blake Kaplan
- */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 362872;
-var summary = 'script should not drop watchpoint that is in use';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
- 
-this.watch('x', function f() {
-             print("before");
-             x = 3;
-             print("after");
-           });
-x = 3;
-
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_5/Regress/regress-127243.js
+++ /dev/null
@@ -1,75 +0,0 @@
-// |reftest| skip-if(xulRuntime.OS=="WINNT"&&isDebugBuild) slow
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 127243;
-var summary = 'Do not crash on watch';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
-
-if (typeof window != 'undefined' && typeof document != 'undefined') 
-{
-  // delay test driver end
-  gDelayTestDriverEnd = true;
-  window.addEventListener('load', handleLoad, false);
-}
-else
-{
-  printStatus('This test must be run in the browser');
-  reportCompare(expect, actual, summary);
-
-}
-
-var div;
-
-function handleLoad()
-{
-  div = document.createElement('div');
-  document.body.appendChild(div);
-  div.setAttribute('id', 'id1');
-  div.style.width = '50px';
-  div.style.height = '100px';
-  div.style.overflow = 'auto';
-
-  for (var i = 0; i < 5; i++)
-  {
-    var p = document.createElement('p');
-    var t = document.createTextNode('blah');
-    p.appendChild(t);
-    div.appendChild(p);
-  }
-
-  div.watch('scrollTop', wee);
-
-  setTimeout('setScrollTop()', 1000);
-}
-
-function wee(id, oldval, newval)
-{
-  var t = document.createTextNode('setting ' + id +
-                                  ' value ' + div.scrollTop +
-                                  ' oldval ' + oldval +
-                                  ' newval ' + newval);
-  var p = document.createElement('p');
-  p.appendChild(t);
-  document.body.appendChild(p);
-
-  return newval;
-}
-
-function setScrollTop()
-{
-  div.scrollTop = 42;
-
-  reportCompare(expect, actual, summary);
-
-  gDelayTestDriverEnd = false;
-  jsTestDriverEnd();
-
-}
deleted file mode 100644
--- a/js/src/tests/js1_5/Regress/regress-213482.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 213482;
-var summary = 'Do not crash watching property when watcher sets property';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
- 
-var testobj = {value: 'foo'};
-
-function watched (a, b, c) {
-  testobj.value = (new Date()).getTime();
-}
-
-function setTest() {
-  testobj.value = 'b';
-}
-
-testobj.watch("value", watched);
-
-setTest();
-
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_5/Regress/regress-240577.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/*
- * Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/licenses/publicdomain/
- * Contributor: Bob Clary
- */
-
-//-----------------------------------------------------------------------------
-// originally reported by Jens Thiele <karme@unforgettable.com> in
-var BUGNUMBER = 240577;
-var summary = 'object.watch execution context';
-var actual = '';
-var expect = '';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
-
-var createWatcher = function ( watchlabel )
-{
-  var watcher = function (property, oldvalue, newvalue)
-  {
-    actual += watchlabel; return newvalue;
-  };
-  return watcher;
-};
-
-var watcher1 = createWatcher('watcher1');
-
-var object = {property: 'value'};
-
-object.watch('property', watcher1);
-
-object.property = 'newvalue';
-
-expect = 'watcher1';
-
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_5/Regress/regress-355341.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 355341;
-var summary = 'Do not crash with watch and setter';
-var actual = '';
-var expect = '';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
- 
-  Object.defineProperty(this, "x", { set: Function, enumerable: true, configurable: true });
-  this.watch('x', function () { }); x = 3;
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_5/Regress/regress-355344.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 355344;
-var summary = 'Exceptions thrown by watch point';
-var actual = '';
-var expect = '';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
-
-  var o = {};
-
-  expect = 'setter: yikes';
-
-  o.watch('x', function(){throw 'yikes'});
-  try
-  {
-    o.x = 3;
-  }
-  catch(ex)
-  {
-    actual = "setter: " + ex;
-  }
-
-  try
-  {
-    eval("") ;
-  }
-  catch(e)
-  {
-    actual = "eval: " + e;
-  }
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_5/Regress/regress-361467.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 361467;
-var summary = 'Do not crash with certain watchers';
-var actual = '';
-var expect = '';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
- 
-  expect = actual = 'No Crash';
-
-  var x;
-  this.watch('x', print);
-  x = 5;
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_5/Regress/regress-361617.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 361617;
-var summary = 'Do not crash with getter, watch and gc';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
- 
-  (function() {
-    Object.defineProperty(this, "x", { get: function(){}, enumerable: true, configurable: true });
-  })();
-  this.watch('x', print);
-  Object.defineProperty(this, "x", { get: function(){}, enumerable: true, configurable: true });
-  gc();
-  this.unwatch('x');
-  x;
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_5/Regress/regress-385393-06.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 385393;
-var summary = 'Regression test for bug 385393';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
- 
-  reportCompare(expect, actual, summary);
-
-  true.watch("x", function(){});
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_5/Regress/regress-506567.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 506567;
-var summary = 'Do not crash with watched variables';
-var actual = '';
-var expect = '';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
-
-  if (typeof clearInterval == 'undefined')
-  {
-    clearInterval = (function () {});
-  }
-
-  var obj = new Object();
-  obj.test = null;
-  obj.watch("test", (function(prop, oldval, newval)
-    {
-      if(false)
-      {
-        var test = newval % oldval;
-        var func = (function(){clearInterval(myInterval);});
-      }
-    }));
-
-  obj.test = 'null';
-  print(obj.test);
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-303277.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 303277;
-var summary = 'Do not crash with crash with a watchpoint for __proto__ property ';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
-
-var o = {};
-o.watch("__proto__", function(){return null;});
-o.__proto__ = null;
- 
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-355339.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 355339;
-var summary = 'Do not assert: sprop->setter != js_watch_set';
-var actual = '';
-var expect = '';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
- 
-  expect = actual = 'No Crash';
-  o = {};
-  o.watch("j", function(a,b,c) { print("*",a,b,c) });
-  o.unwatch("j");
-  o.watch("j", function(a,b,c) { print("*",a,b,c) });
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-361346.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 361346;
-var summary = 'Crash with setter, watch, GC';
-var actual = '';
-var expect = '';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
- 
-expect = actual = 'No Crash';
-
-Object.defineProperty(this, "x", { set: new Function, enumerable: true, configurable: true });
-this.watch('x', function(){});
-gc();
-x = {};
-
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-361360.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 361360;
-var summary = 'Do not assert: !caller || caller->pc involving setter and watch';
-var actual = '';
-var expect = '';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
- 
-  expect = actual = 'No Crash';
-
-  this.__defineSetter__('x', eval);
-  this.watch('x', function(){});
-  x = 3;
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-361552.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 361552;
-var summary = 'Crash with setter, watch, Script';
-var actual = '';
-var expect = '';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
- 
-expect = actual = 'No Crash';
-
-if (typeof Script == 'undefined')
-{
-  print('Test skipped. Script not defined.');
-}
-else
-{
-  this.__defineSetter__('x', gc);
-  this.watch('x', new Script(''));
-  x = 3;
-}
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-361558.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 361558;
-var summary = 'Do not assert: sprop->setter != js_watch_set';
-var actual = '';
-var expect = '';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
- 
-expect = actual = 'No Crash';
-
-({}.__proto__.watch('x', print)); ({}.watch('x', print));
-
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-361571.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 361571;
-var summary = 'Do not assert: fp->scopeChain == parent';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
-
-  try
-  {
-    o = {};
-    o.__defineSetter__('y', eval);
-    o.watch('y', function () { return "";});
-    o.y = 1;
-  }
-  catch(ex)
-  {
-    printStatus('Note eval can no longer be called directly');
-    expect = 'EvalError: function eval must be called directly, and not by way of a function of another name';
-    actual = ex + '';
-  }
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-361856.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 361856;
-var summary = 'Do not assert: overwriting @ js_AddScopeProperty';
-var actual = '';
-var expect = '';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
-
-  function testit() {
-    var obj = {};
-    obj.watch("foo", function(){});
-    delete obj.foo;
-    obj = null;
-    gc();
-  }
-  testit();
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-361964.js
+++ /dev/null
@@ -1,54 +0,0 @@
-// |reftest| skip -- slow, alert not dismissed, now busted by harness
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 361964;
-var summary = 'Crash [@ MarkGCThingChildren] involving watch and setter';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
-
-  var doc;
-  if (typeof document == 'undefined')
-  {
-    doc = {};
-  }
-  else
-  {
-    doc = document;
-  }
-
-  if (typeof alert == 'undefined')
-  {
-    alert = print;
-  }
-
-// Crash:
-  doc.watch("title", function(a,b,c,d) {
-		   return { toString : function() { alert(1); } };
-		 });
-  doc.title = "xxx";
-
-// No crash:
-  doc.watch("title", function() {
-		   return { toString : function() { alert(1); } };
-		 });
-  doc.title = "xxx";
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-385134.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 385134;
-var summary = 'Do not crash with setter, watch, uneval';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
- 
-  if (typeof this.__defineSetter__ != 'undefined' && 
-      typeof this.watch != 'undefined' &&
-      typeof uneval != 'undefined')
-  {
-    try {
-      this.__defineSetter__(0, function(){});
-    } catch (exc) {
-      // In the browser, this fails. Ignore the error.
-    }
-    this.watch(0, function(){});
-    uneval(this);
-  }
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-385393-09.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 385393;
-var summary = 'Regression test for bug 385393';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
- 
-eval("this.__defineSetter__('x', gc); this.watch('x', [].slice); x = 1;");
-
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-390597.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 390597;
-var summary = 'watch point + eval-as-setter allows access to dead JSStackFrame';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
- 
-  function exploit() {
-    try
-    {
-    var obj = this, args = null;
-    obj.__defineSetter__("evil", eval);
-    obj.watch("evil", function() { return "args = arguments;"; });
-    obj.evil = null;
-    eval("print(args[0]);");
-    }
-    catch(ex)
-    {
-      print('Caught ' + ex);
-    }
-  }
-  exploit();
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-420612.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 420612;
-var summary = 'Do not assert: obj == pobj';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
-
-var obj = Object.create([]);
-obj.unwatch("x");
-
-if (typeof reportCompare === "function")
-  reportCompare(true, true);
-
-print("Tests complete");
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-435345-01.js
+++ /dev/null
@@ -1,100 +0,0 @@
-// |reftest| fails
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 435345;
-var summary = 'Watch the length property of arrays';
-var actual = '';
-var expect = '';
-
-// see http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Object:watch
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
-  
-  var arr;
- 
-  try
-  {
-    expect = 'watcher: propname=length, oldval=0, newval=1; ';
-    actual = '';
-    arr = [];
-    arr.watch('length', watcher);
-    arr[0] = '0';
-  }
-  catch(ex)
-  {
-    actual = ex + '';
-  }
-  reportCompare(expect, actual, summary + ': 1');
-
-  try
-  {
-    expect = 'watcher: propname=length, oldval=1, newval=2; ' + 
-      'watcher: propname=length, oldval=2, newval=2; ';
-    actual = '';
-    arr.push(5);
-  }
-  catch(ex)
-  {
-    actual = ex + '';
-  }
-  reportCompare(expect, actual, summary + ': 2');
-
-  try
-  {
-    expect = 'watcher: propname=length, oldval=2, newval=1; ';
-    actual = '';
-    arr.pop();
-  }
-  catch(ex)
-  {
-    actual = ex + '';
-  }
-  reportCompare(expect, actual, summary + ': 3');
-
-  try
-  {
-    expect = 'watcher: propname=length, oldval=1, newval=2; ';
-    actual = '';
-    arr.length++;
-  }
-  catch(ex)
-  {
-    actual = ex + '';
-  }
-  reportCompare(expect, actual, summary + ': 4');
-
-  try
-  {
-    expect = 'watcher: propname=length, oldval=2, newval=5; ';
-    actual = '';
-    arr.length = 5;
-  }
-  catch(ex)
-  {
-    actual = ex + '';
-  }
-  reportCompare(expect, actual, summary + ': 5');
-
-  exitFunc ('test');
-}
-
-function watcher(propname, oldval, newval)
-{
-  actual += 'watcher: propname=' + propname + ', oldval=' + oldval + 
-    ', newval=' + newval + '; ';
-
-  return newval;
-}
-
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-454040.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 454040;
-var summary = 'Do not crash @ js_ComputeFilename';
-var actual = '';
-var expect = '';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
-
-try
-{ 
-  this.__defineGetter__("x", Function);
-  this.__defineSetter__("x", Function);
-  this.watch("x", x.__proto__);
-  x = 1;
-}
-catch(ex)
-{
-}
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-454142.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// |reftest| skip-if(Android)
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 454142;
-var summary = 'Do not crash with gczeal, setter, watch';
-var actual = '';
-var expect = '';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
- 
-this.watch("x", function(){});
-delete x;
-if (typeof gczeal == 'function')
-{
-  gczeal(2);
-}
-
-this.__defineSetter__("x", function(){});
-
-if (typeof gczeal == 'function')
-{
-  gczeal(0);
-}
-
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-455413.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 455413;
-var summary = 'Do not assert with JIT: (m != JSVAL_INT) || isInt32(*vp)';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
- 
-
-this.watch('x', Math.pow); (function() { for(var j=0;j<4;++j){x=1;} })();
-
-
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-465145.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 465145;
-var summary = 'Do not crash with watched defined setter';
-var actual = '';
-var expect = '';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
- 
-
-this.__defineSetter__("x", function(){});
-this.watch("x", function(){});
-y = this;
-for (var z = 0; z < 2; ++z) { x = y };
-this.__defineSetter__("x", function(){});
-for (var z = 0; z < 2; ++z) { x = y };
-
-
-reportCompare(expect, actual, summary);
deleted file mode 100755
--- a/js/src/tests/js1_5/extensions/regress-472787.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// |reftest| skip-if(Android)
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 472787;
-var summary = 'Do not hang with gczeal, watch and concat';
-var actual = '';
-var expect = '';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
-
-this.__defineSetter__("x", Math.sin);
-this.watch("x", '' .concat);
-
-if (typeof gczeal == 'function')
-{
-  gczeal(2);
-}
-
-x = 1;
-
-if (typeof gczeal == 'function')
-{
-  gczeal(0);
-}
-
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_5/extensions/regress-488995.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 488995;
-var summary = 'Do not crash with watch, __defineSetter__ on svg';
-var actual = '';
-var expect = '';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
-
-  if (typeof document == 'undefined')
-  {
-    print('Test skipped: requires browser.');
-  }
-  else
-  {
-    try
-    {
-      var o=document.createElementNS("http://www.w3.org/2000/svg", "svg");
-      var p=o.y;
-      p.watch('animVal', function(id, oldvar, newval) {} );
-      p.type='xxx';
-      p.__defineSetter__('animVal', function() {});
-      p.animVal=0;
-    }
-    catch(ex)
-    {
-    }
-  }
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_6/Regress/regress-476655.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 476655;
-var summary = 'TM: Do not assert: count <= (size_t) (fp->regs->sp - StackBase(fp) - depth)';
-var actual = '';
-var expect = '';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
-
-
-  try
-  {
-    eval(
-      "(function (){ for (var y in this) {} })();" +
-      "[''.watch(\"\", function(){}) for each (x in ['', '', eval, '', '']) if " +
-      "(x)].map(Function)"
-      );
-  }
-  catch(ex)
-  {
-  }
-
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_6/extensions/regress-457521.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 457521;
-var summary = 'Do not crash @ js_DecompileValueGenerator';
-var actual = '';
-var expect = '';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
-
-try
-{
-  this.__defineSetter__("x", [,,,].map);
-  this.watch("x", (new Function("var y, eval")));
-  x = true;
-}
-catch(ex)
-{
-}
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_6/extensions/regress-479567.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 479567;
-var summary = 'Do not assert: thing';
-var actual = '';
-var expect = '';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
-
-
-function f()
-{
-  (eval("(function(){for each (y in [false, false, false]);});"))();
-}
-
-try
-{
-  this.__defineGetter__("x", gc);
-  uneval(this.watch("y", this.toSource))
-    f();
-  throw x;
-}
-catch(ex)
-{
-}
-
-
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_7/extensions/regress-453955.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 453955;
-var summary = 'Do not assert: sprop->setter != js_watch_set || pobj != obj';
-var actual = '';
-var expect = '';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
- 
-  for (var z = 0; z < 2; ++z) 
-  { 
-    [].filter.watch("9", function(y) { yield y; });
-  }
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_7/extensions/regress-473282.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 473282;
-var summary = 'Do not assert: thing';
-var actual = '';
-var expect = '';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
- 
-this.watch("b", "".substring);
-this.__defineGetter__("a", gc);
-for each (b in [this, null, null]);
-a;
-
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_7/regress/regress-385133-01.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 385133;
-var summary = 'Do not crash due to recursion with watch, setter, delete, generator';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
-
-  try
-  { 
-    Object.defineProperty(this, "x", { set: {}.watch, enumerable: true, configurable: true });
-    this.watch('x', 'foo'.split);
-    delete x;
-    function g(){ x = 1; yield; }
-    for (i in g()) { }
-  }
-  catch(ex)
-  {
-  }
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_8/extensions/regress-394709.js
+++ /dev/null
@@ -1,51 +0,0 @@
-// |reftest| skip-if(!xulRuntime.shell)
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 394709;
-var summary = 'Do not leak with object.watch and closure';
-var actual = 'No Leak';
-var expect = 'No Leak';
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
-
-  assertEq(finalizeCount(), 0, "invalid initial state");
-
-  runtest();
-  gc();
-  assertEq(finalizeCount(), 1, "leaked");
-
-  runtest();
-  gc();
-  assertEq(finalizeCount(), 2, "leaked");
-
-  runtest();
-  gc();
-  assertEq(finalizeCount(), 3, "leaked");
-
-
-  function runtest () {
-    var obj = { b: makeFinalizeObserver() };
-    obj.watch('b', watcher);
-
-    function watcher(id, old, value) {
-      ++obj.n;
-      return value;
-    }
-  }
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_8/extensions/regress-481989.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 481989;
-var summary = 'TM: Do not assert: SPROP_HAS_STUB_SETTER(sprop)';
-var actual = '';
-var expect = '';
-
-printBugNumber(BUGNUMBER);
-printStatus (summary);
-
-
-y = this.watch("x", function(){}); for each (let y in ['', '']) x = y;
-
-
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/tests/js1_8_1/extensions/regress-452498-193.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 452498;
-var summary = 'TM: upvar2 regression tests';
-var actual = '';
-var expect = '';
-
-//-------  Comment #193  From  Gary Kwong
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
-
-// Assertion failure: afunbox->parent, at ../jsparse.cpp:1912
-
-  this.x = undefined;
-  this.watch("x", Function);
-  NaN = uneval({ get \u3056 (){ return undefined } });
-  x+=NaN;
-
-  reportCompare(expect, actual, summary);
-
-  exitFunc ('test');
-}
--- a/js/src/tests/js1_8_1/extensions/regress-452498-196.js
+++ b/js/src/tests/js1_8_1/extensions/regress-452498-196.js
@@ -16,25 +16,16 @@ test();
 //-----------------------------------------------------------------------------
 
 function test()
 {
   enterFunc ('test');
   printBugNumber(BUGNUMBER);
   printStatus (summary);
 
-// Assertion failure: localKind == JSLOCAL_VAR || localKind == JSLOCAL_CONST, at ../jsfun.cpp:916
-
-  this.x = undefined;
-  this.watch("x", Function);
-  NaN = uneval({ get \u3056 (){ return undefined } });
-  x+=NaN;
-
-  reportCompare(expect, actual, summary + ': 1');
-
 // Assertion failure: lexdep->isLet(), at ../jsparse.cpp:1900
 
   (function (){
     var x;
     eval("var x; (function () { return x; })");
   }
     )();
 
deleted file mode 100644
--- a/js/src/tests/js1_8_1/extensions/regress-520572.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 4 -*- */
-/*
- * Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/licenses/publicdomain/
- * Contributor: Blake Kaplan
- */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 520572;
-var summary = 'watch should innerize the object being watched';
-var actual = 0;
-var expect = 2;
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
-  enterFunc ('test');
-  printBugNumber(BUGNUMBER);
-  printStatus (summary);
-
-  if ("evalcx" in this) {
-      // shell
-      let s = evalcx("lazy");
-      s.n = 0;
-      evalcx('this.watch("x", function(){ n++; }); this.x = 4; x = 6', s);
-      actual = s.n;
-      reportCompare(expect, actual, summary);
-  } else {
-      // browser
-      this.watch('x', function(){ actual++; });
-      this.x = 4;
-      x = 6;
-      reportCompare(expect, actual, summary);
-  }
-
-  exitFunc ('test');
-}
--- a/js/src/tests/js1_8_1/regress/regress-452498-160.js
+++ b/js/src/tests/js1_8_1/regress/regress-452498-160.js
@@ -16,19 +16,14 @@ test();
 //-----------------------------------------------------------------------------
 
 function test()
 {
   enterFunc ('test');
   printBugNumber(BUGNUMBER);
   printStatus (summary);
 
-// crash [@ js_Interpret]
-  (eval("(function(){ this.watch(\"x\", function () { new function () { return y; } } ); const y = undefined });"))();
-  x = NaN;
-  reportCompare(expect, actual, summary + ': 2');
-
 // Assertion failure: JOF_OPTYPE(op) == JOF_ATOM, at ../jsemit.cpp:5916
   ({ set z(v){},  set y(v) { return --x; }, set w(v) { return --w; } });
   reportCompare(expect, actual, summary + ': 3');
 
   exitFunc ('test');
 }
deleted file mode 100644
--- a/js/src/tests/js1_8_5/extensions/regress-604781-1.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-
-var watcherCount, setterCount;
-function watcher(id, oldval, newval) { watcherCount++; return newval; }
-function setter(newval) { setterCount++; }
-
-var p = { set x(v) { setter(v); } };
-p.watch('x', watcher);
-
-watcherCount = setterCount = 0;
-p.x = 2;
-assertEq(setterCount, 1);
-assertEq(watcherCount, 1);
-
-var o = Object.defineProperty({}, 'x', { set:setter, enumerable:true, configurable:true });
-o.watch('x', watcher);
-
-watcherCount = setterCount = 0;
-o.x = 2;
-assertEq(setterCount, 1);
-assertEq(watcherCount, 1);
-
-reportCompare(0, 0, 'ok');
deleted file mode 100644
--- a/js/src/tests/js1_8_5/extensions/regress-604781-2.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-
-var log;
-function watcher(id, old, newval) { log += 'watcher'; return newval; }
-var o = { set x(v) { log += 'setter'; } };
-o.watch('x', watcher);
-Object.defineProperty(o, 'x', {value: 3, writable: true});
-log = '';
-o.x = 3;
-assertEq(log, 'watcher');
-
-reportCompare(0, 0, 'ok');
deleted file mode 100644
--- a/js/src/tests/js1_8_5/extensions/regress-627984-1.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-
-// See bug 627984, comment 17, item 1.
-var obj;
-var methods = [];
-for (var i = 0; i < 2; i++) {
-    obj = {m: function () { return this.x; }};
-    obj.watch("m", function (id, oldval, newval) { methods[i] = oldval; });
-    obj.m = 0;
-}
-assertEq(typeof methods[0], "function");
-assertEq(typeof methods[1], "function");
-assertEq(methods[0] !== methods[1], true);
-
-reportCompare(0, 0, 'ok');
deleted file mode 100644
--- a/js/src/tests/js1_8_5/extensions/regress-627984-2.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-
-// See bug 627984, comment 17, item 2.
-var obj = {};
-var x;
-obj.watch("m", function (id, oldval, newval) {
-        x = this.m;
-        return newval;
-    });
-delete obj.m;
-obj.m = function () { return this.method; };
-obj.m = 2;
-
-reportCompare(0, 0, 'ok');
deleted file mode 100644
--- a/js/src/tests/js1_8_5/extensions/regress-627984-3.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-
-// Don't write string value to method slot.
-// See bug 627984, comment 17, item 2.
-var obj = {};
-obj.watch("m", function (id, oldval, newval) {
-        return 'ok';
-    });
-delete obj.m;
-obj.m = function () { return this.x; };
-assertEq(obj.m, 'ok');
-
-reportCompare(0, 0, 'ok');
deleted file mode 100644
--- a/js/src/tests/js1_8_5/extensions/regress-627984-4.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-
-// See bug 627984, comment 17, item 3.
-var obj = {};
-obj.watch("m", function (id, oldval, newval) {
-        delete obj.m;
-        obj.m = function () {};
-        return newval;
-    });
-delete obj.m;
-obj.m = 1;
-assertEq(obj.m, 1);
-
-reportCompare(0, 0, 'ok');
deleted file mode 100644
--- a/js/src/tests/js1_8_5/extensions/regress-627984-5.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-
-// Bug 627984 comment 11.
-var o = ({});
-o.p = function() {};
-o.watch('p', function() { });
-o.q = function() {}
-delete o.p;
-o.p = function() {};
-assertEq(o.p, void 0);
-
-reportCompare(0, 0, 'ok');
deleted file mode 100644
--- a/js/src/tests/js1_8_5/extensions/regress-627984-6.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-
-// Bug 627984 description.
-var o = Array;
-o.p = function() {};
-o.watch('p', function() { }); 
-for(var x in o) { 
-    o[x]; 
-}
-delete o.p;
-o.p = function() {};
-assertEq(o.p, void 0);
-
-reportCompare(0, 0, 'ok');
deleted file mode 100644
--- a/js/src/tests/js1_8_5/extensions/regress-627984-7.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-
-// See bug 627984 comment 20.
-var obj = {m: function () {}};
-obj.watch("m", function () { throw 'FAIL'; });
-var f = obj.m;  // don't call the watchpoint
-
-reportCompare(0, 0, 'ok');
deleted file mode 100644
--- a/js/src/tests/js1_8_5/extensions/regress-631723.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-
-var o = {a:1, b:2};
-o.watch("p", function() { return 13; });
-delete o.p;
-o.p = 0;
-assertEq(o.p, 13);
-
-reportCompare(0, 0, 'ok');
deleted file mode 100644
--- a/js/src/tests/js1_8_5/extensions/regress-636697.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-
-var a = {set p(x) {}};
-a.watch('p', function () {});
-var b = Object.create(a);
-b.watch('p', function () {});
-delete b.p;
-b.p = 0;
-
-reportCompare(0, 0, 'ok');
deleted file mode 100644
--- a/js/src/tests/js1_8_5/extensions/regress-637985.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-
-var obj = {};
-obj.watch(-1, function(){});
-obj.unwatch("-1");  // don't assert
-
-reportCompare(0, 0, 'ok');
\ No newline at end of file
deleted file mode 100644
--- a/js/src/tests/js1_8_5/extensions/regress-691746.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-
-var obj = {};
-try {
-    obj.watch(QName(), function () {});
-} catch (exc) {
-}
-gc();
-
-reportCompare(0, 0, 'ok');
deleted file mode 100644
--- a/js/src/tests/js1_8_5/extensions/watch-undefined-setter.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/*
- * Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/licenses/publicdomain/
- * Contributor:
- *   Gary Kwong
- */
-
-var gTestfile = 'watch-undefined-setter.js';
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 560277;
-var summary =
-  'Crash [@ JSObject::getParent] or [@ js_WrapWatchedSetter] or ' +
-  '[@ js_GetClassPrototype]';
-
-this.watch("x", function() { });
-Object.defineProperty(this, "x", { set: undefined, configurable: true });
-
-reportCompare(true, true);
deleted file mode 100644
--- a/js/src/tests/js1_8_5/regress/regress-533876.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/licenses/publicdomain/
- * Contributors: Gary Kwong and Jason Orendorff
- */
-
-var savedEval = eval;
-var x = [0];
-eval();
-
-x.__proto__ = this;  // x has non-dictionary scope
-try {
-    DIE;
-} catch(e) {
-}
-
-delete eval;  // force dictionary scope for global
-gc();
-eval = savedEval;
-var f = eval("(function () { return /x/; })");
-x.watch('x', f);  // clone property from global to x, including SPROP_IN_DICTIONARY flag
-
-reportCompare("ok", "ok", "bug 533876");
deleted file mode 100644
--- a/js/src/tests/js1_8_5/regress/regress-548276.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// |reftest| skip
-/*
- * Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/licenses/publicdomain/
- * Contributors: Gary Kwong and Jason Orendorff
- */
-var obj = {};
-obj.__defineSetter__("x", function() {});
-obj.watch("x", function() {});
-obj.__defineSetter__("x", /a/);
deleted file mode 100644
--- a/js/src/tests/js1_8_5/regress/regress-584648.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// |reftest| skip
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-// Contributors: Gary Kwong <gary@rumblingedge.com>
-//               Jason Orendorff <jorendorff@mozilla.com>
-
-// on a non-global object
-var x = {};
-x.watch("p", function () { evalcx(''); });
-x.p = 0;
-
-// on the global
-watch("e", (function () { evalcx(''); }));
-e = function () {};
-
-reportCompare(0, 0, "ok");
deleted file mode 100644
--- a/js/src/tests/js1_8_5/regress/regress-635195.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-
-var obj = {set x(v) {}};
-obj.watch("x", function() { delete obj.x; });
-obj.x = "hi";  // don't assert
-
-reportCompare(0, 0, 'ok');
deleted file mode 100644
--- a/js/src/tests/js1_8_5/regress/regress-636394.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Any copyright is dedicated to the Public Domain.
-// http://creativecommons.org/licenses/publicdomain/
-
-var a = {p0: function () {}};
-var b = /f/;
-b.__proto__ = a;
-b.watch("p0", function () {});
-b.p0;
-
-reportCompare(0, 0, "ok");