js/src/jit-test/tests/debug/Object-defineProperties-01.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 // Debug.Object.prototype.defineProperties.
     3 var g = newGlobal();
     4 var dbg = new Debugger;
     5 var gw = dbg.addDebuggee(g);
     7 var descProps = ['configurable', 'enumerable', 'writable', 'value', 'get', 'set'];
     8 function test(objexpr, descs) {
     9     g.eval("obj = (" + objexpr + ");");
    10     var gobjw = gw.getOwnPropertyDescriptor("obj").value;
    11     gobjw.defineProperties(descs);
    13     var indirectEval = eval;
    14     var obj = indirectEval("(" + objexpr + ");");
    15     Object.defineProperties(obj, descs);
    17     var ids = Object.keys(descs);
    18     for (var i = 0; i < ids.length; i++) {
    19         var actual = gobjw.getOwnPropertyDescriptor(ids[i]);
    20         var expected = Object.getOwnPropertyDescriptor(obj, ids[i]);
    21         assertEq(Object.getPrototypeOf(actual), Object.prototype);
    22         assertEq(actual.configurable, expected.configurable);
    23         assertEq(actual.enumerable, expected.enumerable);
    24         for (var j = 0; j < descProps; j++) {
    25             var prop = descProps[j];
    26             assertEq(prop in actual, prop in expected);
    27             assertEq(actual[prop], expected[prop]);
    28         }
    29     }
    30 }
    32 test("{}", {});
    33 test("/abc/", {});
    35 g.eval("var aglobal = newGlobal('same-compartment');");
    36 var aglobal = newGlobal('same-compartment');
    37 test("aglobal", {});
    39 var adescs = {a: {enumerable: true, writable: true, value: 0}};
    40 test("{}", adescs);
    41 test("{a: 1}", adescs);
    43 var arrdescs = [{value: 'a'}, {value: 'b'}, , {value: 'd'}];
    44 test("{}", arrdescs);
    45 test("[]", arrdescs);
    46 test("[0, 1, 2, 3]", arrdescs);

mercurial