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 |