| OLD | NEW | 
|---|
| 1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 var thrower = { [Symbol.toPrimitive]: () => FAIL }; | 5 var thrower = { [Symbol.toPrimitive]: () => FAIL }; | 
| 6 | 6 | 
| 7 // Tests that a native conversion function is included in the | 7 // Tests that a native conversion function is included in the | 
| 8 // stack trace. | 8 // stack trace. | 
| 9 function testTraceNativeConversion(nativeFunc) { | 9 function testTraceNativeConversion(nativeFunc) { | 
| 10   var nativeFuncName = nativeFunc.name; | 10   var nativeFuncName = nativeFunc.name; | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
| 26   } catch (e) { | 26   } catch (e) { | 
| 27     assertTrue(e.stack.indexOf(expectedString) >= 0, expectedString); | 27     assertTrue(e.stack.indexOf(expectedString) >= 0, expectedString); | 
| 28   } | 28   } | 
| 29 } | 29 } | 
| 30 | 30 | 
| 31 testBuiltinInStackTrace("Date.prototype.getDate.call('')", "at String.getDate"); | 31 testBuiltinInStackTrace("Date.prototype.getDate.call('')", "at String.getDate"); | 
| 32 testBuiltinInStackTrace("Date.prototype.getUTCDate.call('')", | 32 testBuiltinInStackTrace("Date.prototype.getUTCDate.call('')", | 
| 33                         "at String.getUTCDate"); | 33                         "at String.getUTCDate"); | 
| 34 testBuiltinInStackTrace("Date.prototype.getTime.call('')", "at String.getTime"); | 34 testBuiltinInStackTrace("Date.prototype.getTime.call('')", "at String.getTime"); | 
| 35 | 35 | 
| 36 // TODO(jgruber): These use a more generic expected string until detection of | 36 testBuiltinInStackTrace("Number(thrower);", "at Number"); | 
| 37 // assembly builtin constructors is fixed. | 37 testBuiltinInStackTrace("new Number(thrower);", "at new Number"); | 
| 38 testBuiltinInStackTrace("Number(thrower);", "Number"); | 38 testBuiltinInStackTrace("String(thrower);", "at String"); | 
| 39 testBuiltinInStackTrace("new Number(thrower);", "Number"); | 39 testBuiltinInStackTrace("new String(thrower);", "at new String"); | 
| 40 testBuiltinInStackTrace("String(thrower);", "String"); |  | 
| 41 testBuiltinInStackTrace("new String(thrower);", "String"); |  | 
| 42 | 40 | 
| 43 // Ensure we correctly pick up the receiver's string tag. | 41 // Ensure we correctly pick up the receiver's string tag. | 
| 44 testBuiltinInStackTrace("Math.acos(thrower);", "at Math.acos"); | 42 testBuiltinInStackTrace("Math.acos(thrower);", "at Math.acos"); | 
| 45 testBuiltinInStackTrace("Math.asin(thrower);", "at Math.asin"); | 43 testBuiltinInStackTrace("Math.asin(thrower);", "at Math.asin"); | 
| 46 testBuiltinInStackTrace("Math.fround(thrower);", "at Math.fround"); | 44 testBuiltinInStackTrace("Math.fround(thrower);", "at Math.fround"); | 
| 47 testBuiltinInStackTrace("Math.imul(thrower);", "at Math.imul"); | 45 testBuiltinInStackTrace("Math.imul(thrower);", "at Math.imul"); | 
| 48 | 46 | 
| 49 // As above, but function passed as an argument and then called. | 47 // As above, but function passed as an argument and then called. | 
| 50 testBuiltinInStackTrace("((f, x) => f(x))(Math.acos, thrower);", "at acos"); | 48 testBuiltinInStackTrace("((f, x) => f(x))(Math.acos, thrower);", "at acos"); | 
| 51 testBuiltinInStackTrace("((f, x) => f(x))(Math.asin, thrower);", "at asin"); | 49 testBuiltinInStackTrace("((f, x) => f(x))(Math.asin, thrower);", "at asin"); | 
| 52 testBuiltinInStackTrace("((f, x) => f(x))(Math.fround, thrower);", "at fround"); | 50 testBuiltinInStackTrace("((f, x) => f(x))(Math.fround, thrower);", "at fround"); | 
| 53 testBuiltinInStackTrace("((f, x) => f(x))(Math.imul, thrower);", "at imul"); | 51 testBuiltinInStackTrace("((f, x) => f(x))(Math.imul, thrower);", "at imul"); | 
| OLD | NEW | 
|---|