js/src/tests/ecma_5/Object/15.2.3.9.js

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 /*
     2  * Any copyright is dedicated to the Public Domain.
     3  * http://creativecommons.org/licenses/publicdomain/
     4  */
     6 /* Object.freeze */
     8 function getme() { return 42; };
     9 function setme(x) { };
    11 var properties = { all:       { value:1, writable:true,  configurable:true,  enumerable: true },
    12                    readOnly:  { value:2, writable:false, configurable:true,  enumerable: true },
    13                    nonConfig: { value:3, writable:true,  configurable:false, enumerable: true },
    14                    none:      { value:4, writable:false, configurable:false, enumerable: true },
    15                    getter:    { get: getme,              configurable:false, enumerable: true },
    16                    setter:    { set: setme,              configurable:false, enumerable: true },
    17                    getandset: { get: getme, set: setme,  configurable:false, enumerable: true }
    18                  };
    19 var o = Object.defineProperties({}, properties);
    21 Object.freeze(o);
    23 function getPropertyOf(obj) {
    24     return function (prop) {
    25         return Object.getOwnPropertyDescriptor(obj, prop);
    26     };
    27 };
    29 assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'all'),
    30                    { value: 1, writable:false,  enumerable:true, configurable:false }),
    31          true);
    32 assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'readOnly'),
    33                    { value: 2, writable:false,  enumerable:true, configurable:false }),
    34          true);
    35 assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'nonConfig'),
    36                     { value: 3, writable:false,  enumerable:true, configurable:false }),
    37          true);
    38 assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'none'),
    39                     { value: 4, writable:false,  enumerable:true, configurable:false }),
    40          true);
    41 assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'getter'),
    42                     { get: getme, set: (void 0), enumerable:true, configurable:false }),
    43          true);
    44 assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'setter'),
    45                     { set: setme, get: (void 0), enumerable:true, configurable:false }),
    46          true);
    47 assertEq(deepEqual(Object.getOwnPropertyDescriptor(o, 'getandset'),
    48                     { get: getme, set: setme,    enumerable:true, configurable:false }),
    49          true);
    51 reportCompare(true, true);

mercurial