| This tests ToPrimitive performed on Objective-C wrapper object. |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| |
| RuntimeObject |
| |
| PASS '' + objCController is '<ObjCController>' |
| PASS +objCController is 0 |
| PASS `${objCController}` is '<ObjCController>' |
| |
| PASS objCController[Symbol.toPrimitive].length is 1 |
| PASS objCController[Symbol.toPrimitive]('default') is '<ObjCController>' |
| PASS objCController[Symbol.toPrimitive]('number') is 0 |
| PASS objCController[Symbol.toPrimitive]('string') is '<ObjCController>' |
| PASS objCController[Symbol.toPrimitive]('foo') threw exception TypeError: Expected primitive hint to match one of 'default', 'number', 'string'.. |
| PASS objCController[Symbol.toPrimitive].call({}, 'default') threw exception TypeError: RuntimeObject[Symbol.toPrimitive] method called on incompatible |this| value.. |
| PASS (0, objCController[Symbol.toPrimitive])() threw exception TypeError: RuntimeObject[Symbol.toPrimitive] method called on incompatible |this| value.. |
| |
| RuntimeObject (redefined Symbol.toPrimitive) |
| |
| PASS typeof symbolToPrimitiveDescriptor is 'object' |
| PASS symbolToPrimitiveDescriptor.value is object[Symbol.toPrimitive] |
| PASS symbolToPrimitiveDescriptor.writable is true |
| PASS symbolToPrimitiveDescriptor.enumerable is false |
| PASS symbolToPrimitiveDescriptor.configurable is true |
| |
| PASS object[Symbol.toPrimitive]() is 'bar' |
| PASS typeof symbolToPrimitiveDescriptor is 'object' |
| PASS symbolToPrimitiveDescriptor.value is newToPrimitive |
| PASS symbolToPrimitiveDescriptor.writable is false |
| PASS symbolToPrimitiveDescriptor.enumerable is true |
| PASS symbolToPrimitiveDescriptor.configurable is true |
| |
| PASS object[Symbol.toPrimitive] is 123 |
| |
| ObjcFallbackObjectImp |
| |
| PASS '' + fallbackObject is 'undefined' |
| PASS +fallbackObject is NaN |
| PASS `${fallbackObject}` is 'undefined' |
| |
| PASS fallbackObject[Symbol.toPrimitive].length is 0 |
| PASS fallbackObject[Symbol.toPrimitive]() is undefined |
| PASS fallbackObject[Symbol.toPrimitive]('foo') is undefined |
| PASS fallbackObject[Symbol.toPrimitive].call({}) threw exception TypeError: ObjcFallbackObject[Symbol.toPrimitive] method called on incompatible |this| value.. |
| PASS (0, fallbackObject[Symbol.toPrimitive])() threw exception TypeError: ObjcFallbackObject[Symbol.toPrimitive] method called on incompatible |this| value.. |
| |
| ObjcFallbackObjectImp (redefined Symbol.toPrimitive) |
| |
| PASS typeof symbolToPrimitiveDescriptor is 'object' |
| PASS symbolToPrimitiveDescriptor.value is object[Symbol.toPrimitive] |
| PASS symbolToPrimitiveDescriptor.writable is true |
| PASS symbolToPrimitiveDescriptor.enumerable is false |
| PASS symbolToPrimitiveDescriptor.configurable is true |
| |
| PASS object[Symbol.toPrimitive]() is 'bar' |
| PASS typeof symbolToPrimitiveDescriptor is 'object' |
| PASS symbolToPrimitiveDescriptor.value is newToPrimitive |
| PASS symbolToPrimitiveDescriptor.writable is false |
| PASS symbolToPrimitiveDescriptor.enumerable is true |
| PASS symbolToPrimitiveDescriptor.configurable is true |
| |
| PASS object[Symbol.toPrimitive] is 123 |
| |