mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-06-25 20:29:33 +00:00
100 lines
3.2 KiB
JavaScript
100 lines
3.2 KiB
JavaScript
/* 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);
|
|
};
|
|
}
|