diff --git a/test/harness/sta-error.js b/test/harness/sta-error.js new file mode 100644 index 0000000000000000000000000000000000000000..36463225c5a8a545767cf69b2df8e3830928ca12 --- /dev/null +++ b/test/harness/sta-error.js @@ -0,0 +1,29 @@ +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: > + The global `$ERROR` function throws an instance of the global `Test262Error` + function with the specified message. +includes: [sta.js] +---*/ +var threw = false; + +try { + $ERROR('This is a test message'); +} catch(err) { + threw = true; + if (err.constructor !== Test262Error) { + throw new Error( + 'Expected a Test262Error, but a "' + err.constructor.name + + '" was thrown.' + ); + } + if (err.message !== 'This is a test message') { + throw new Error('The error thrown did not define the specified message.'); + } +} + +if (threw === false) { + $ERROR('Expected a Test262Error, but no error was thrown.'); +} diff --git a/test/harness/sta-override-error.js b/test/harness/sta-override-error.js new file mode 100644 index 0000000000000000000000000000000000000000..2409cfaaac3ccea0238df7b8c47b66f7084679f3 --- /dev/null +++ b/test/harness/sta-override-error.js @@ -0,0 +1,18 @@ +// Copyright (c) 2017 Rick Waldron. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: > + Assert that global $ERROR is overridable +includes: [sta.js] +---*/ +function BaloneyError() {} + +// Override $ERROR +$ERROR = function() { + throw new BaloneyError(); +}; + +assert.throws(BaloneyError, function() { + $ERROR(); +}); diff --git a/test/harness/sta.js b/test/harness/sta.js new file mode 100644 index 0000000000000000000000000000000000000000..d439f202947eb18b60b4db28860a3bb31064f8e0 --- /dev/null +++ b/test/harness/sta.js @@ -0,0 +1,15 @@ +// Copyright (c) 2017 Rick Waldron. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: > + Including sta.js will expose two functions: + + Test262Error + $ERROR + +includes: [sta.js] +---*/ + +assert(typeof Test262Error === "function"); +assert(typeof Test262Error.prototype.toString === "function"); +assert(typeof $ERROR === "function");