tor-browser

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

S15.5.2.1_A1_T11.js (1777B)


      1 // Copyright 2009 the Sputnik authors.  All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 info: |
      6    When "String" is called as part of a new expression, it is a constructor: it initialises the newly created object and
      7    The [[Value]] property of the newly constructed object is set to ToString(value), or to the empty string if value is not supplied
      8 es5id: 15.5.2.1_A1_T11
      9 description: >
     10    Creating string object with "new String(function object)" after
     11    changing function object's valueOf and toString properties
     12 ---*/
     13 
     14 function __obj() {};
     15 
     16 __obj.valueOf = function() {
     17  return true;
     18 };
     19 
     20 __obj.toString = function() {
     21  return {};
     22 };
     23 
     24 var __str = new String(__obj);
     25 
     26 
     27 
     28 //////////////////////////////////////////////////////////////////////////////
     29 //CHECK#1
     30 if (typeof __str !== "object") {
     31  throw new Test262Error('#1: function __obj(){}; __str = new String(__obj); typeof __str === "object". Actual: typeof __str ===' + typeof __str);
     32 }
     33 //
     34 //////////////////////////////////////////////////////////////////////////////
     35 
     36 //////////////////////////////////////////////////////////////////////////////
     37 //CHECK#1.5
     38 if (__str.constructor !== String) {
     39  throw new Test262Error('#1.5: __str = new String(__obj); __str.constructor === String. Actual: __str.constructor ===' + __str.constructor);
     40 }
     41 //
     42 //////////////////////////////////////////////////////////////////////////////
     43 
     44 //////////////////////////////////////////////////////////////////////////////
     45 //CHECK#2
     46 if (__str != "true") {
     47  throw new Test262Error('#2: function __obj(){}; __str = new String(__obj); __str =="true". Actual: __str ==' + __str);
     48 }
     49 //
     50 //////////////////////////////////////////////////////////////////////////////
     51 
     52 reportCompare(0, 0);