S8.12.8_A3.js (922B)
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 We overload valueOf method so it return non Primitive value 7 Thus [[DefaultValue]] must return Object.toString() value 8 es5id: 8.12.8_A3 9 description: > 10 Try to overload toString method, that returned Primitive, and 11 valueOf method, that returned new Object 12 ---*/ 13 14 try 15 { 16 var __obj = { 17 toString: function() { 18 return "1" 19 }, 20 valueOf: function() { 21 return new Object(); 22 } 23 } 24 25 assert.sameValue( 26 Number(__obj), 27 1, 28 'Number("{toString: function() {return "1"}, valueOf: function() {return new Object();}}) must return 1' 29 ); 30 } 31 catch (e) 32 { 33 throw new Test262Error('#1.2: var __obj = {toNumber: function() {return "1"}, valueOf: function() {return new Object();}}; Number(__obj) === 1. Actual: ' + (e)); 34 } 35 36 reportCompare(0, 0);