js/src/tests/test262/ch11/11.4/11.4.6/S11.4.6_A2.2_T1.js

Wed, 31 Dec 2014 13:27:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 13:27:57 +0100
branch
TOR_BUG_3246
changeset 6
8bccb770b82d
permissions
-rw-r--r--

Ignore runtime configuration files generated during quality assurance.

     1 // Copyright 2009 the Sputnik authors.  All rights reserved.
     2 // This code is governed by the BSD license found in the LICENSE file.
     4 /**
     5  * Operator +x uses [[Default Value]]
     6  *
     7  * @path ch11/11.4/11.4.6/S11.4.6_A2.2_T1.js
     8  * @description If Type(value) is Object, evaluate ToPrimitive(value, Number)
     9  */
    11 //CHECK#1
    12 var object = {valueOf: function() {return 1}};
    13 if (+object !== 1) {
    14   $ERROR('#1: var object = {valueOf: function() {return 1}}; +object === 1. Actual: ' + (+object));
    15 }
    17 //CHECK#2
    18 var object = {valueOf: function() {return 1}, toString: function() {return 0}};
    19 if (+object !== 1) {
    20   $ERROR('#2: var object = {valueOf: function() {return 1}, toString: function() {return 0}}; +object === 1. Actual: ' + (+object));
    21 } 
    23 //CHECK#3
    24 var object = {valueOf: function() {return 1}, toString: function() {return {}}};
    25 if (+object !== 1) {
    26   $ERROR('#3: var object = {valueOf: function() {return 1}, toString: function() {return {}}}; +object === 1. Actual: ' + (+object));
    27 }
    29 //CHECK#4
    30 try {
    31   var object = {valueOf: function() {return 1}, toString: function() {throw "error"}};
    32   if (+object !== 1) {
    33     $ERROR('#4.1: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; +object === 1. Actual: ' + (+object));
    34   }
    35 }
    36 catch (e) {
    37   if (e === "error") {
    38     $ERROR('#4.2: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; +object not throw "error"');
    39   } else {
    40     $ERROR('#4.3: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; +object not throw Error. Actual: ' + (e));
    41   }
    42 }
    44 //CHECK#5
    45 var object = {toString: function() {return 1}};
    46 if (+object !== 1) {
    47   $ERROR('#5: var object = {toString: function() {return 1}}; +object === 1. Actual: ' + (+object));
    48 }
    50 //CHECK#6
    51 var object = {valueOf: function() {return {}}, toString: function() {return 1}}
    52 if (+object !== 1) {
    53   $ERROR('#6: var object = {valueOf: function() {return {}}, toString: function() {return 1}}; +object === 1. Actual: ' + (+object));
    54 }
    56 //CHECK#7
    57 try {
    58   var object = {valueOf: function() {throw "error"}, toString: function() {return 1}};
    59   +object;
    60   $ERROR('#7.1: var object = {valueOf: function() {throw "error"}, toString: function() {return 1}}; +object throw "error". Actual: ' + (+object));
    61 }  
    62 catch (e) {
    63   if (e !== "error") {
    64     $ERROR('#7.2: var object = {valueOf: function() {throw "error"}, toString: function() {return 1}}; +object throw "error". Actual: ' + (e));
    65   } 
    66 }
    68 //CHECK#8
    69 try {
    70   var object = {valueOf: function() {return {}}, toString: function() {return {}}};
    71   +object;
    72   $ERROR('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; +object throw TypeError. Actual: ' + (+object));
    73 }  
    74 catch (e) {
    75   if ((e instanceof TypeError) !== true) {
    76     $ERROR('#8.2: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; +object throw TypeError. Actual: ' + (e));
    77   } 
    78 }

mercurial