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: --stack-size=100 --harmony --harmony-reflect --harmony-regexps | 5 // Flags: --stack-size=100 --harmony --harmony-reflect --harmony-regexps |
6 // Flags: --harmony-simd --strong-mode | 6 // Flags: --harmony-simd --strong-mode |
7 | 7 |
8 function test(f, expected, type) { | 8 function test(f, expected, type) { |
9 try { | 9 try { |
10 f(); | 10 f(); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 // kCalledNonCallable | 50 // kCalledNonCallable |
51 test(function() { | 51 test(function() { |
52 [].forEach(1); | 52 [].forEach(1); |
53 }, "1 is not a function", TypeError); | 53 }, "1 is not a function", TypeError); |
54 | 54 |
55 // kCalledOnNonObject | 55 // kCalledOnNonObject |
56 test(function() { | 56 test(function() { |
57 Object.defineProperty(1, "x", {}); | 57 Object.defineProperty(1, "x", {}); |
58 }, "Object.defineProperty called on non-object", TypeError); | 58 }, "Object.defineProperty called on non-object", TypeError); |
59 | 59 |
| 60 test(function() { |
| 61 (function() {}).apply({}, 1); |
| 62 }, "CreateListFromArrayLike called on non-object", TypeError); |
| 63 |
| 64 test(function() { |
| 65 Reflect.apply(function() {}, {}, 1); |
| 66 }, "CreateListFromArrayLike called on non-object", TypeError); |
| 67 |
| 68 test(function() { |
| 69 Reflect.construct(function() {}, 1); |
| 70 }, "CreateListFromArrayLike called on non-object", TypeError); |
| 71 |
60 // kCalledOnNullOrUndefined | 72 // kCalledOnNullOrUndefined |
61 test(function() { | 73 test(function() { |
62 Array.prototype.shift.call(null); | 74 Array.prototype.shift.call(null); |
63 }, "Array.prototype.shift called on null or undefined", TypeError); | 75 }, "Array.prototype.shift called on null or undefined", TypeError); |
64 | 76 |
65 // kCannotFreezeArrayBufferView | 77 // kCannotFreezeArrayBufferView |
66 test(function() { | 78 test(function() { |
67 Object.freeze(new Uint16Array(1)); | 79 Object.freeze(new Uint16Array(1)); |
68 }, "Cannot freeze array buffer views with elements", TypeError); | 80 }, "Cannot freeze array buffer views with elements", TypeError); |
69 | 81 |
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 test(function() { | 335 test(function() { |
324 Array.prototype.toString.call(null); | 336 Array.prototype.toString.call(null); |
325 }, "Cannot convert undefined or null to object", TypeError); | 337 }, "Cannot convert undefined or null to object", TypeError); |
326 | 338 |
327 // kValueAndAccessor | 339 // kValueAndAccessor |
328 test(function() { | 340 test(function() { |
329 Object.defineProperty({}, "x", { get: function(){}, value: 1}); | 341 Object.defineProperty({}, "x", { get: function(){}, value: 1}); |
330 }, "Invalid property descriptor. Cannot both specify accessors " + | 342 }, "Invalid property descriptor. Cannot both specify accessors " + |
331 "and a value or writable attribute, #<Object>", TypeError); | 343 "and a value or writable attribute, #<Object>", TypeError); |
332 | 344 |
333 // kWrongArgs | |
334 test(function() { | |
335 (function() {}).apply({}, 1); | |
336 }, "Function.prototype.apply: Arguments list has wrong type", TypeError); | |
337 | |
338 test(function() { | |
339 Reflect.apply(function() {}, {}, 1); | |
340 }, "Reflect.apply: Arguments list has wrong type", TypeError); | |
341 | |
342 test(function() { | |
343 Reflect.construct(function() {}, 1); | |
344 }, "Reflect.construct: Arguments list has wrong type", TypeError); | |
345 | |
346 | 345 |
347 // === SyntaxError === | 346 // === SyntaxError === |
348 | 347 |
349 // kInvalidRegExpFlags | 348 // kInvalidRegExpFlags |
350 test(function() { | 349 test(function() { |
351 eval("/a/x.test(\"a\");"); | 350 eval("/a/x.test(\"a\");"); |
352 }, "Invalid regular expression flags", SyntaxError); | 351 }, "Invalid regular expression flags", SyntaxError); |
353 | 352 |
354 // kMalformedRegExp | 353 // kMalformedRegExp |
355 test(function() { | 354 test(function() { |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
453 Number(1).toString(100); | 452 Number(1).toString(100); |
454 }, "toString() radix argument must be between 2 and 36", RangeError); | 453 }, "toString() radix argument must be between 2 and 36", RangeError); |
455 | 454 |
456 | 455 |
457 // === URIError === | 456 // === URIError === |
458 | 457 |
459 // kURIMalformed | 458 // kURIMalformed |
460 test(function() { | 459 test(function() { |
461 decodeURI("%%"); | 460 decodeURI("%%"); |
462 }, "URI malformed", URIError); | 461 }, "URI malformed", URIError); |
OLD | NEW |