js/src/jit-test/tests/debug/Object-class.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/Object-class.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,26 @@
     1.4 +// Basic tests for Debugger.Object.prototype.class.
     1.5 +var g = newGlobal();
     1.6 +var dbg = new Debugger(g);
     1.7 +var hits = 0;
     1.8 +g.eval('function f() { debugger; }');
     1.9 +
    1.10 +dbg.onDebuggerStatement = function (frame) {
    1.11 +    var arr = frame.arguments;
    1.12 +    assertEq(arr[0].class, "Object");
    1.13 +    assertEq(arr[1].class, "Array");
    1.14 +    assertEq(arr[2].class, "Function");
    1.15 +    assertEq(arr[3].class, "Date");
    1.16 +    assertEq(arr[4].class, "Object");
    1.17 +    assertEq(arr[5].class, "Function");
    1.18 +    assertEq(arr[6].class, "Date");
    1.19 +    hits++;
    1.20 +};
    1.21 +g.f(Object.prototype, [], eval, new Date,
    1.22 +    Proxy.create({}), Proxy.createFunction({}, eval), new Proxy(new Date, {}));
    1.23 +assertEq(hits, 1);
    1.24 +
    1.25 +// Debugger.Object.prototype.class should see through cross-compartment
    1.26 +// wrappers.
    1.27 +g.eval('f(Object.prototype, [], eval, new Date,\
    1.28 +          Proxy.create({}), Proxy.createFunction({}, f), new Proxy(new Date, {}));');
    1.29 +assertEq(hits, 2);

mercurial