| /* This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| |
| |
| load(libdir + "../../tests/ecma_6/shell.js"); |
| |
| if (typeof assertWarning === 'undefined') { |
| var assertWarning = function assertWarning(f, errorClass, msg) { |
| var hadWerror = options().split(",").indexOf("werror") !== -1; |
| |
| // Ensure the "werror" option is disabled. |
| if (hadWerror) |
| options("werror"); |
| |
| try { |
| f(); |
| } catch (exc) { |
| if (hadWerror) |
| options("werror"); |
| |
| // print() rather than throw a different exception value, in case |
| // the caller wants exc.stack. |
| if (msg) |
| print("assertWarning: " + msg); |
| print("assertWarning: Unexpected exception calling " + f + |
| " with warnings-as-errors disabled"); |
| throw exc; |
| } |
| |
| // Enable the "werror" option. |
| options("werror"); |
| |
| try { |
| assertThrowsInstanceOf(f, errorClass, msg); |
| } catch (exc) { |
| if (msg) |
| print("assertWarning: " + msg); |
| throw exc; |
| } finally { |
| if (!hadWerror) |
| options("werror"); |
| } |
| }; |
| } |
| |
| if (typeof assertNoWarning === 'undefined') { |
| var assertNoWarning = function assertWarning(f, msg) { |
| // Ensure the "werror" option is enabled. |
| var hadWerror = options().split(",").indexOf("werror") !== -1; |
| if (!hadWerror) |
| options("werror"); |
| |
| try { |
| f(); |
| } catch (exc) { |
| if (msg) |
| print("assertNoWarning: " + msg); |
| print("assertNoWarning: Unexpected exception calling " + f + |
| "with warnings-as-errors enabled"); |
| throw exc; |
| } finally { |
| if (!hadWerror) |
| options("werror"); |
| } |
| }; |
| } |
| |
| if (typeof assertErrorMessage === 'undefined') { |
| var assertErrorMessage = function assertErrorMessage(f, ctor, test) { |
| try { |
| f(); |
| } catch (e) { |
| if (!(e instanceof ctor)) |
| throw new Error("Assertion failed: expected exception " + ctor.name + ", got " + e); |
| if (typeof test == "string") { |
| if (test != e.message) |
| throw new Error("Assertion failed: expeceted " + test + ", got " + e.message); |
| } else { |
| if (!test.test(e.message)) |
| throw new Error("Assertion failed: expeceted " + test.toString() + ", got " + e.message); |
| } |
| return; |
| } |
| throw new Error("Assertion failed: expected exception " + ctor.name + ", no exception thrown"); |
| }; |
| } |
| |
| if (typeof assertTypeErrorMessage === 'undefined') { |
| var assertTypeErrorMessage = function assertTypeErrorMessage(f, test) { |
| assertErrorMessage(f, TypeError, test); |
| }; |
| } |
| |
| if (typeof assertRangeErrorMessage === 'undefined') { |
| var assertRangeErrorMessage = function assertRangeErrorMessage(f, test) { |
| assertErrorMessage(f, RangeError, test); |
| }; |
| } |