| 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-arrays | 5 // Flags: --stack-size=100 --harmony --harmony-reflect --harmony-arrays |
| 6 // Flags: --harmony-regexps | 6 // Flags: --harmony-regexps |
| 7 | 7 |
| 8 function test(f, expected, type) { | 8 function test(f, expected, type) { |
| 9 try { | 9 try { |
| 10 f(); | 10 f(); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 // kCannotConvertToPrimitive | 65 // kCannotConvertToPrimitive |
| 66 test(function() { | 66 test(function() { |
| 67 [].join(Object(Symbol(1))); | 67 [].join(Object(Symbol(1))); |
| 68 }, "Cannot convert object to primitive value", TypeError); | 68 }, "Cannot convert object to primitive value", TypeError); |
| 69 | 69 |
| 70 // kConstructorNotFunction | 70 // kConstructorNotFunction |
| 71 test(function() { | 71 test(function() { |
| 72 Uint16Array(1); | 72 Uint16Array(1); |
| 73 }, "Constructor Uint16Array requires 'new'", TypeError); | 73 }, "Constructor Uint16Array requires 'new'", TypeError); |
| 74 | 74 |
| 75 // kDataViewNotArrayBuffer |
| 76 test(function() { |
| 77 new DataView(1); |
| 78 }, "First argument to DataView constructor must be an ArrayBuffer", TypeError); |
| 79 |
| 75 // kDateType | 80 // kDateType |
| 76 test(function() { | 81 test(function() { |
| 77 Date.prototype.setYear.call({}, 1); | 82 Date.prototype.setYear.call({}, 1); |
| 78 }, "this is not a Date object.", TypeError); | 83 }, "this is not a Date object.", TypeError); |
| 79 | 84 |
| 80 // kDefineDisallowed | 85 // kDefineDisallowed |
| 81 test(function() { | 86 test(function() { |
| 82 "use strict"; | 87 "use strict"; |
| 83 var o = {}; | 88 var o = {}; |
| 84 Object.preventExtensions(o); | 89 Object.preventExtensions(o); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 var obj = {}; | 143 var obj = {}; |
| 139 obj[Symbol.iterator] = function() { return { next: function() { return 1 }}}; | 144 obj[Symbol.iterator] = function() { return { next: function() { return 1 }}}; |
| 140 Array.from(obj); | 145 Array.from(obj); |
| 141 }, "Iterator result 1 is not an object", TypeError); | 146 }, "Iterator result 1 is not an object", TypeError); |
| 142 | 147 |
| 143 // kIteratorValueNotAnObject | 148 // kIteratorValueNotAnObject |
| 144 test(function() { | 149 test(function() { |
| 145 new Map([1]); | 150 new Map([1]); |
| 146 }, "Iterator value 1 is not an entry object", TypeError); | 151 }, "Iterator value 1 is not an entry object", TypeError); |
| 147 | 152 |
| 153 // kNotAPromise |
| 154 test(function() { |
| 155 Promise.prototype.chain.call(1); |
| 156 }, "1 is not a promise", TypeError); |
| 157 |
| 148 // kNotConstructor | 158 // kNotConstructor |
| 149 test(function() { | 159 test(function() { |
| 150 new Symbol(); | 160 new Symbol(); |
| 151 }, "Symbol is not a constructor", TypeError); | 161 }, "Symbol is not a constructor", TypeError); |
| 152 | 162 |
| 153 // kNotGeneric | 163 // kNotGeneric |
| 154 test(function() { | 164 test(function() { |
| 155 String.prototype.toString.call(1); | 165 String.prototype.toString.call(1); |
| 156 }, "String.prototype.toString is not generic", TypeError); | 166 }, "String.prototype.toString is not generic", TypeError); |
| 157 | 167 |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 226 var o = {}; | 236 var o = {}; |
| 227 Object.defineProperty(o, "x", { value: 1, configurable: false }); | 237 Object.defineProperty(o, "x", { value: 1, configurable: false }); |
| 228 Object.defineProperty(o, "x", { value: 2 }); | 238 Object.defineProperty(o, "x", { value: 2 }); |
| 229 }, "Cannot redefine property: x", TypeError); | 239 }, "Cannot redefine property: x", TypeError); |
| 230 | 240 |
| 231 // kReduceNoInitial | 241 // kReduceNoInitial |
| 232 test(function() { | 242 test(function() { |
| 233 [].reduce(function() {}); | 243 [].reduce(function() {}); |
| 234 }, "Reduce of empty array with no initial value", TypeError); | 244 }, "Reduce of empty array with no initial value", TypeError); |
| 235 | 245 |
| 246 // kResolverNotAFunction |
| 247 test(function() { |
| 248 new Promise(1); |
| 249 }, "Promise resolver 1 is not a function", TypeError); |
| 250 |
| 236 // kSymbolToPrimitive | 251 // kSymbolToPrimitive |
| 237 test(function() { | 252 test(function() { |
| 238 1 + Object(Symbol()); | 253 1 + Object(Symbol()); |
| 239 }, "Cannot convert a Symbol wrapper object to a primitive value", TypeError); | 254 }, "Cannot convert a Symbol wrapper object to a primitive value", TypeError); |
| 240 | 255 |
| 241 // kSymbolToString | 256 // kSymbolToString |
| 242 test(function() { | 257 test(function() { |
| 243 "" + Symbol(); | 258 "" + Symbol(); |
| 244 }, "Cannot convert a Symbol value to a string", TypeError); | 259 }, "Cannot convert a Symbol value to a string", TypeError); |
| 245 | 260 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 286 | 301 |
| 287 | 302 |
| 288 // === RangeError === | 303 // === RangeError === |
| 289 | 304 |
| 290 // kArrayLengthOutOfRange | 305 // kArrayLengthOutOfRange |
| 291 test(function() { | 306 test(function() { |
| 292 "use strict"; | 307 "use strict"; |
| 293 Object.defineProperty([], "length", { value: 1E100 }); | 308 Object.defineProperty([], "length", { value: 1E100 }); |
| 294 }, "defineProperty() array length out of range", RangeError); | 309 }, "defineProperty() array length out of range", RangeError); |
| 295 | 310 |
| 311 // kInvalidArrayBufferLength |
| 312 test(function() { |
| 313 new ArrayBuffer(-1); |
| 314 }, "Invalid array buffer length", RangeError); |
| 315 |
| 316 // kInvalidArrayLength |
| 317 test(function() { |
| 318 [].length = -1; |
| 319 }, "Invalid array length", RangeError); |
| 320 |
| 296 // kInvalidCodePoint | 321 // kInvalidCodePoint |
| 297 test(function() { | 322 test(function() { |
| 298 String.fromCodePoint(-1); | 323 String.fromCodePoint(-1); |
| 299 }, "Invalid code point -1", RangeError); | 324 }, "Invalid code point -1", RangeError); |
| 300 | 325 |
| 301 // kInvalidCountValue | 326 // kInvalidCountValue |
| 302 test(function() { | 327 test(function() { |
| 303 "a".repeat(-1); | 328 "a".repeat(-1); |
| 304 }, "Invalid count value", RangeError); | 329 }, "Invalid count value", RangeError); |
| 305 | 330 |
| 331 // kInvalidArrayBufferLength |
| 332 test(function() { |
| 333 new Uint16Array(-1); |
| 334 }, "Invalid typed array length", RangeError); |
| 335 |
| 306 // kNormalizationForm | 336 // kNormalizationForm |
| 307 test(function() { | 337 test(function() { |
| 308 "".normalize("ABC"); | 338 "".normalize("ABC"); |
| 309 }, "The normalization form should be one of NFC, NFD, NFKC, NFKD.", RangeError); | 339 }, "The normalization form should be one of NFC, NFD, NFKC, NFKD.", RangeError); |
| 310 | 340 |
| 311 // kNumberFormatRange | 341 // kNumberFormatRange |
| 312 test(function() { | 342 test(function() { |
| 313 Number(1).toFixed(100); | 343 Number(1).toFixed(100); |
| 314 }, "toFixed() digits argument must be between 0 and 20", RangeError); | 344 }, "toFixed() digits argument must be between 0 and 20", RangeError); |
| 315 | 345 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 333 Number(1).toString(100); | 363 Number(1).toString(100); |
| 334 }, "toString() radix argument must be between 2 and 36", RangeError); | 364 }, "toString() radix argument must be between 2 and 36", RangeError); |
| 335 | 365 |
| 336 | 366 |
| 337 // === URIError === | 367 // === URIError === |
| 338 | 368 |
| 339 // kURIMalformed | 369 // kURIMalformed |
| 340 test(function() { | 370 test(function() { |
| 341 decodeURI("%%"); | 371 decodeURI("%%"); |
| 342 }, "URI malformed", URIError); | 372 }, "URI malformed", URIError); |
| OLD | NEW |