tor-browser

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

message-method-prop-cast.js (2001B)


      1 // |reftest| shell-option(--enable-explicit-resource-management) skip-if(!(this.hasOwnProperty('getBuildConfiguration')&&getBuildConfiguration('explicit-resource-management'))||!xulRuntime.shell) -- explicit-resource-management is not enabled unconditionally, requires shell-options
      2 // Copyright (C) 2023 Ron Buckton. All rights reserved.
      3 // This code is governed by the BSD license found in the LICENSE file.
      4 
      5 /*---
      6 esid: sec-suppressederror-constructor
      7 description: >
      8  Cast ToString values of message in the created method property
      9 info: |
     10  SuppressedError ( error, suppressed, message )
     11 
     12  ...
     13  5. If message is not undefined, then
     14    a. Let msg be ? ToString(message).
     15    b. Perform ! CreateMethodProperty(O, "message", msg).
     16  6. Return O.
     17 
     18  CreateMethodProperty ( O, P, V )
     19 
     20  ...
     21  3. Let newDesc be the PropertyDescriptor { [[Value]]: V, [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }.
     22  4. Return ? O.[[DefineOwnProperty]](P, newDesc).
     23 features: [explicit-resource-management]
     24 includes: [propertyHelper.js]
     25 ---*/
     26 
     27 var case1 = new SuppressedError(undefined, undefined, 42);
     28 
     29 verifyProperty(case1, 'message', {
     30  value: '42',
     31  writable: true,
     32  enumerable: false,
     33  configurable: true,
     34 });
     35 
     36 var case2 = new SuppressedError(undefined, undefined, false);
     37 
     38 verifyProperty(case2, 'message', {
     39  value: 'false',
     40  writable: true,
     41  enumerable: false,
     42  configurable: true,
     43 });
     44 
     45 var case3 = new SuppressedError(undefined, undefined, true);
     46 
     47 verifyProperty(case3, 'message', {
     48  value: 'true',
     49  writable: true,
     50  enumerable: false,
     51  configurable: true,
     52 });
     53 
     54 var case4 = new SuppressedError(undefined, undefined, { toString() { return 'string'; }});
     55 
     56 verifyProperty(case4, 'message', {
     57  value: 'string',
     58  writable: true,
     59  enumerable: false,
     60  configurable: true,
     61 });
     62 
     63 var case5 = new SuppressedError(undefined, undefined, null);
     64 
     65 verifyProperty(case5, 'message', {
     66  value: 'null',
     67  writable: true,
     68  enumerable: false,
     69  configurable: true,
     70 });
     71 
     72 reportCompare(0, 0);