| // Copyright 2009 the Sputnik authors. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| |
| /*--- |
| info: | |
| ToObject conversion from Object: The result is the input |
| argument (no conversion) |
| es5id: 9.9_A6 |
| description: Converting from Objects to Object |
| ---*/ |
| |
| function MyObject(val) { |
| this.value = val; |
| this.valueOf = function() { |
| return this.value; |
| } |
| } |
| |
| var x = new MyObject(1); |
| var y = Object(x); |
| |
| // CHECK#1 |
| if (y.valueOf() !== x.valueOf()) { |
| $ERROR('#1: Object(obj).valueOf() === obj.valueOf(). Actual: ' + (Object(obj).valueOf())); |
| } |
| |
| // CHECK#2 |
| if (typeof y !== typeof x) { |
| $ERROR('#2: typeof Object(obj) === typeof obj. Actual: ' + (typeof Object(obj))); |
| } |
| |
| // CHECK#3 |
| if (y.constructor.prototype !== x.constructor.prototype) { |
| $ERROR('#3: Object(obj).constructor.prototype === obj.constructor.prototype. Actual: ' + (Object(obj).constructor.prototype)); |
| } |
| |
| |
| // CHECK#4 |
| if (y !== x) { |
| $ERROR('#4: Object(obj) === obj'); |
| } |