tor-browser

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

class-field-on-frozen-objects-strict.js (796B)


      1 'use strict';
      2 // Copyright (C) 2019 Caio Lima. All rights reserved.
      3 // This code is governed by the BSD license found in the LICENSE file.
      4 
      5 /*---
      6 description: Public class field initialization fails on frozen object
      7 esid: sec-define-field
      8 info: |
      9  DefineField(receiver, fieldRecord)
     10    ...
     11    8. If fieldName is a Private Name,
     12      a. Perform ? PrivateFieldAdd(fieldName, receiver, initValue).
     13    9. Else,
     14      a. Assert: IsPropertyKey(fieldName) is true.
     15      b. Perform ? CreateDataPropertyOrThrow(receiver, fieldName, initValue).
     16    10. Return.
     17 features: [class, class-fields-public]
     18 flags: [onlyStrict]
     19 ---*/
     20 
     21 class Test {
     22  f = Object.freeze(this);
     23  g = "Test262";
     24 }
     25 
     26 assert.throws(TypeError, function() {
     27  new Test();
     28 }, "Frozen objects can't be changed");
     29 
     30 reportCompare(0, 0);