| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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 // Flags: --strong-mode --harmony-reflect | 5 // Flags: --strong-mode --harmony-reflect |
| 6 // Flags: --allow-natives-syntax | 6 // Flags: --allow-natives-syntax |
| 7 | 7 |
| 8 'use strict'; | 8 'use strict'; |
| 9 | 9 |
| 10 | 10 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 for (let argumentCount = 0; argumentCount < 3; argumentCount++) { | 65 for (let argumentCount = 0; argumentCount < 3; argumentCount++) { |
| 66 let calls = [ | 66 let calls = [ |
| 67 `f(${generateArguments(argumentCount)})`, | 67 `f(${generateArguments(argumentCount)})`, |
| 68 `f(${generateSpread(argumentCount)})`, | 68 `f(${generateSpread(argumentCount)})`, |
| 69 `f.call(${generateArguments(argumentCount, 'undefined')})`, | 69 `f.call(${generateArguments(argumentCount, 'undefined')})`, |
| 70 `f.call(undefined, ${generateSpread(argumentCount)})`, | 70 `f.call(undefined, ${generateSpread(argumentCount)})`, |
| 71 `f.apply(undefined, [${generateArguments(argumentCount)}])`, | 71 `f.apply(undefined, [${generateArguments(argumentCount)}])`, |
| 72 `f.bind(undefined)(${generateArguments(argumentCount)})`, | 72 `f.bind(undefined)(${generateArguments(argumentCount)})`, |
| 73 `%_Call(f, ${generateArguments(argumentCount, 'undefined')})`, | 73 `%_Call(f, ${generateArguments(argumentCount, 'undefined')})`, |
| 74 `%Call(f, ${generateArguments(argumentCount, 'undefined')})`, | 74 `%Call(f, ${generateArguments(argumentCount, 'undefined')})`, |
| 75 `%Apply(f, undefined, [${generateArguments(argumentCount)}], 0, | 75 `Reflect.apply(f, undefined, [${generateArguments(argumentCount)}])`, |
| 76 ${argumentCount})`, | |
| 77 ]; | 76 ]; |
| 78 | 77 |
| 79 for (let call of calls) { | 78 for (let call of calls) { |
| 80 let code = `'use strict'; ${def}; ${call};`; | 79 let code = `'use strict'; ${def}; ${call};`; |
| 81 if (argumentCount < parameterCount) { | 80 if (argumentCount < parameterCount) { |
| 82 print(code); | 81 print(code); |
| 83 assertThrows(code, TypeError); | 82 assertThrows(code, TypeError); |
| 84 } else { | 83 } else { |
| 85 assertDoesNotThrow(code); | 84 assertDoesNotThrow(code); |
| 86 } | 85 } |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 for (let argumentCount = 0; argumentCount < 3; argumentCount++) { | 127 for (let argumentCount = 0; argumentCount < 3; argumentCount++) { |
| 129 let calls = [ | 128 let calls = [ |
| 130 `o.m(${generateArguments(argumentCount)})`, | 129 `o.m(${generateArguments(argumentCount)})`, |
| 131 `o.m(${generateSpread(argumentCount)})`, | 130 `o.m(${generateSpread(argumentCount)})`, |
| 132 `o.m.call(${generateArguments(argumentCount, 'o')})`, | 131 `o.m.call(${generateArguments(argumentCount, 'o')})`, |
| 133 `o.m.call(o, ${generateSpread(argumentCount)})`, | 132 `o.m.call(o, ${generateSpread(argumentCount)})`, |
| 134 `o.m.apply(o, [${generateArguments(argumentCount)}])`, | 133 `o.m.apply(o, [${generateArguments(argumentCount)}])`, |
| 135 `o.m.bind(o)(${generateArguments(argumentCount)})`, | 134 `o.m.bind(o)(${generateArguments(argumentCount)})`, |
| 136 `%_Call(o.m, ${generateArguments(argumentCount, 'o')})`, | 135 `%_Call(o.m, ${generateArguments(argumentCount, 'o')})`, |
| 137 `%Call(o.m, ${generateArguments(argumentCount, 'o')})`, | 136 `%Call(o.m, ${generateArguments(argumentCount, 'o')})`, |
| 138 `%Apply(o.m, o, [${generateArguments(argumentCount)}], 0, | 137 `Reflect.apply(o.m, o, [${generateArguments(argumentCount)}])`, |
| 139 ${argumentCount})`, | |
| 140 ]; | 138 ]; |
| 141 | 139 |
| 142 for (let call of calls) { | 140 for (let call of calls) { |
| 143 let code = `'use strict'; ${def}; ${call};`; | 141 let code = `'use strict'; ${def}; ${call};`; |
| 144 if (argumentCount < parameterCount) { | 142 if (argumentCount < parameterCount) { |
| 145 assertThrows(code, TypeError); | 143 assertThrows(code, TypeError); |
| 146 } else { | 144 } else { |
| 147 assertDoesNotThrow(code); | 145 assertDoesNotThrow(code); |
| 148 } | 146 } |
| 149 } | 147 } |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 if (argumentCount < parameterCount) { | 330 if (argumentCount < parameterCount) { |
| 333 assertThrows(code, TypeError); | 331 assertThrows(code, TypeError); |
| 334 } else { | 332 } else { |
| 335 assertDoesNotThrow(code); | 333 assertDoesNotThrow(code); |
| 336 } | 334 } |
| 337 } | 335 } |
| 338 } | 336 } |
| 339 } | 337 } |
| 340 } | 338 } |
| 341 })(); | 339 })(); |
| OLD | NEW |