js/src/jit-test/tests/debug/surfaces-02.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/jit-test/tests/debug/surfaces-02.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,31 @@
     1.4 +// Debugger.prototype.onDebuggerStatement
     1.5 +
     1.6 +load(libdir + 'asserts.js');
     1.7 +
     1.8 +var g = newGlobal();
     1.9 +var dbg = new Debugger(g);
    1.10 +gc();  // don't assert marking debug hooks
    1.11 +assertEq(dbg.onDebuggerStatement, undefined);
    1.12 +
    1.13 +function f() {}
    1.14 +
    1.15 +assertThrowsInstanceOf(function () { dbg.onDebuggerStatement = null; }, TypeError);
    1.16 +assertThrowsInstanceOf(function () { dbg.onDebuggerStatement = "bad"; }, TypeError);
    1.17 +assertThrowsInstanceOf(function () { dbg.onDebuggerStatement = {}; }, TypeError);
    1.18 +dbg.onDebuggerStatement = f;
    1.19 +assertEq(dbg.onDebuggerStatement, f);
    1.20 +
    1.21 +assertEq(Object.getOwnPropertyNames(dbg).length, 0);
    1.22 +var desc = Object.getOwnPropertyDescriptor(Debugger.prototype, "onDebuggerStatement");
    1.23 +assertEq(desc.configurable, true);
    1.24 +assertEq(desc.enumerable, false);
    1.25 +
    1.26 +assertThrowsInstanceOf(function () { desc.get(); }, TypeError);
    1.27 +assertThrowsInstanceOf(function () { desc.get.call(undefined); }, TypeError);
    1.28 +assertThrowsInstanceOf(function () { desc.get.call(Debugger.prototype); }, TypeError);
    1.29 +assertEq(desc.get.call(dbg), f);
    1.30 +
    1.31 +assertThrowsInstanceOf(function () { desc.set(); }, TypeError);
    1.32 +assertThrowsInstanceOf(function () { desc.set.call(dbg); }, TypeError);
    1.33 +assertThrowsInstanceOf(function () { desc.set.call({}, f); }, TypeError);
    1.34 +assertThrowsInstanceOf(function () { desc.set.call(Debugger.prototype, f); }, TypeError);

mercurial