tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

writable-enumerable-configurable-descriptor.js (1249B)


      1 // Copyright (C) 2020 Alexey Shvayka. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 esid: sec-arguments-exotic-objects-defineownproperty-p-desc
      6 description: >
      7  Index stays mapped when redefined with complete descriptor, which differs only
      8  by the [[Value]] field. Unmapped index is created.
      9 info: |
     10  [[DefineOwnProperty]] ( P, Desc )
     11 
     12  [...]
     13  6. Let allowed be ? OrdinaryDefineOwnProperty(args, P, newArgDesc).
     14  7. If allowed is false, return false.
     15  8. If isMapped is true, then
     16    [...]
     17    b. Else,
     18      i. If Desc.[[Value]] is present, then
     19        1. Let setStatus be Set(map, P, Desc.[[Value]], false).
     20        2. Assert: setStatus is true because formal parameters mapped by argument objects are always writable.
     21  9. Return true.
     22 flags: [noStrict]
     23 ---*/
     24 
     25 (function(a) {
     26  Object.defineProperty(arguments, "0", {
     27    value: "foo",
     28    writable: true,
     29    enumerable: true,
     30    configurable: true,
     31  });
     32 
     33  assert.sameValue(a, "foo");
     34  assert.sameValue(arguments[0], "foo");
     35 
     36 
     37  Object.defineProperty(arguments, "1", {
     38    value: "bar",
     39    writable: true,
     40    enumerable: true,
     41    configurable: true,
     42  });
     43 
     44  assert.sameValue(arguments[1], "bar");
     45 })(0);
     46 
     47 reportCompare(0, 0);