diff options
Diffstat (limited to 'js/src/tests/test262/built-ins/Number/S8.12.8_A3.js')
-rw-r--r-- | js/src/tests/test262/built-ins/Number/S8.12.8_A3.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/Number/S8.12.8_A3.js b/js/src/tests/test262/built-ins/Number/S8.12.8_A3.js new file mode 100644 index 0000000000..8026aeb04e --- /dev/null +++ b/js/src/tests/test262/built-ins/Number/S8.12.8_A3.js @@ -0,0 +1,36 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + We overload valueOf method so it return non Primitive value + Thus [[DefaultValue]] must return Object.toString() value +es5id: 8.12.8_A3 +description: > + Try to overload toString method, that returned Primitive, and + valueOf method, that returned new Object +---*/ + +try +{ + var __obj = { + toString: function() { + return "1" + }, + valueOf: function() { + return new Object(); + } + } + + assert.sameValue( + Number(__obj), + 1, + 'Number("{toString: function() {return "1"}, valueOf: function() {return new Object();}}) must return 1' + ); +} +catch (e) +{ + throw new Test262Error('#1.2: var __obj = {toNumber: function() {return "1"}, valueOf: function() {return new Object();}}; Number(__obj) === 1. Actual: ' + (e)); +} + +reportCompare(0, 0); |