| OLD | NEW |
| 1 // Copyright 2008 the V8 project authors. All rights reserved. | 1 // Copyright 2008 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 // Checks that the found value is *not* null. | 86 // Checks that the found value is *not* null. |
| 87 var assertNotNull; | 87 var assertNotNull; |
| 88 | 88 |
| 89 // Assert that the passed function or eval code throws an exception. | 89 // Assert that the passed function or eval code throws an exception. |
| 90 // The optional second argument is an exception constructor that the | 90 // The optional second argument is an exception constructor that the |
| 91 // thrown exception is checked against with "instanceof". | 91 // thrown exception is checked against with "instanceof". |
| 92 // The optional third argument is a message type string that is compared | 92 // The optional third argument is a message type string that is compared |
| 93 // to the type property on the thrown exception. | 93 // to the type property on the thrown exception. |
| 94 var assertThrows; | 94 var assertThrows; |
| 95 | 95 |
| 96 // Assert that the passed function throws an exception. |
| 97 // The exception is checked against the second argument using assertEquals. |
| 98 var assertThrowsEquals; |
| 99 |
| 96 // Assert that the passed function or eval code does not throw an exception. | 100 // Assert that the passed function or eval code does not throw an exception. |
| 97 var assertDoesNotThrow; | 101 var assertDoesNotThrow; |
| 98 | 102 |
| 99 // Asserts that the found value is an instance of the constructor passed | 103 // Asserts that the found value is an instance of the constructor passed |
| 100 // as the second argument. | 104 // as the second argument. |
| 101 var assertInstanceof; | 105 var assertInstanceof; |
| 102 | 106 |
| 103 // Assert that this code is never executed (i.e., always fails if executed). | 107 // Assert that this code is never executed (i.e., always fails if executed). |
| 104 var assertUnreachable; | 108 var assertUnreachable; |
| 105 | 109 |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 try { | 350 try { |
| 347 if (typeof code === 'function') { | 351 if (typeof code === 'function') { |
| 348 code(); | 352 code(); |
| 349 } else { | 353 } else { |
| 350 eval(code); | 354 eval(code); |
| 351 } | 355 } |
| 352 threwException = false; | 356 threwException = false; |
| 353 } catch (e) { | 357 } catch (e) { |
| 354 if (typeof type_opt === 'function') { | 358 if (typeof type_opt === 'function') { |
| 355 assertInstanceof(e, type_opt); | 359 assertInstanceof(e, type_opt); |
| 360 } else if (type_opt !== void 0) { |
| 361 fail("invalid use of assertThrows, maybe you want assertThrowsEquals"); |
| 356 } | 362 } |
| 357 if (arguments.length >= 3) { | 363 if (arguments.length >= 3) { |
| 358 assertEquals(e.type, cause_opt); | 364 assertEquals(e.type, cause_opt); |
| 359 } | 365 } |
| 360 // Success. | 366 // Success. |
| 361 return; | 367 return; |
| 362 } | 368 } |
| 363 throw new MjsUnitAssertionError("Did not throw exception"); | 369 throw new MjsUnitAssertionError("Did not throw exception"); |
| 364 }; | 370 }; |
| 365 | 371 |
| 366 | 372 |
| 373 assertThrowsEquals = function assertThrowsEquals(fun, val) { |
| 374 try { |
| 375 fun(); |
| 376 } catch(e) { |
| 377 assertEquals(val, e); |
| 378 return; |
| 379 } |
| 380 throw new MjsUnitAssertionError("Did not throw exception"); |
| 381 }; |
| 382 |
| 383 |
| 367 assertInstanceof = function assertInstanceof(obj, type) { | 384 assertInstanceof = function assertInstanceof(obj, type) { |
| 368 if (!(obj instanceof type)) { | 385 if (!(obj instanceof type)) { |
| 369 var actualTypeName = null; | 386 var actualTypeName = null; |
| 370 var actualConstructor = Object.getPrototypeOf(obj).constructor; | 387 var actualConstructor = Object.getPrototypeOf(obj).constructor; |
| 371 if (typeof actualConstructor === "function") { | 388 if (typeof actualConstructor === "function") { |
| 372 actualTypeName = actualConstructor.name || String(actualConstructor); | 389 actualTypeName = actualConstructor.name || String(actualConstructor); |
| 373 } | 390 } |
| 374 fail("Object <" + PrettyPrint(obj) + "> is not an instance of <" + | 391 fail("Object <" + PrettyPrint(obj) + "> is not an instance of <" + |
| 375 (type.name || type) + ">" + | 392 (type.name || type) + ">" + |
| 376 (actualTypeName ? " but of < " + actualTypeName + ">" : "")); | 393 (actualTypeName ? " but of < " + actualTypeName + ">" : "")); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 417 if (sync_opt === undefined) sync_opt = ""; | 434 if (sync_opt === undefined) sync_opt = ""; |
| 418 assertTrue(OptimizationStatus(fun, sync_opt) !== 1, name_opt); | 435 assertTrue(OptimizationStatus(fun, sync_opt) !== 1, name_opt); |
| 419 } | 436 } |
| 420 | 437 |
| 421 assertOptimized = function assertOptimized(fun, sync_opt, name_opt) { | 438 assertOptimized = function assertOptimized(fun, sync_opt, name_opt) { |
| 422 if (sync_opt === undefined) sync_opt = ""; | 439 if (sync_opt === undefined) sync_opt = ""; |
| 423 assertTrue(OptimizationStatus(fun, sync_opt) !== 2, name_opt); | 440 assertTrue(OptimizationStatus(fun, sync_opt) !== 2, name_opt); |
| 424 } | 441 } |
| 425 | 442 |
| 426 })(); | 443 })(); |
| OLD | NEW |