blob: 95ddaf7b27288004aee97ca72f8afc31c791f2e3 [file] [log] [blame]
// |reftest| skip-if(!xulRuntime.shell)
var BUGNUMBER = 1170716;
var summary = 'Add js shell functions to get last warning';
print(BUGNUMBER + ": " + summary);
// Warning with JSEXN_NONE.
enableLastWarning();
eval(`({}).__proto__ = {};`);
var warning = getLastWarning();
assertEq(warning !== null, true);
assertEq(warning.name, "None");
assertEq(warning.message.includes("mutating"), true);
assertEq(warning.lineNumber, 1);
assertEq(warning.columnNumber, 2);
// Clear last warning.
clearLastWarning();
warning = getLastWarning();
assertEq(warning, null);
// Warning with JSEXN_SYNTAXERR.
options("strict");
eval(`var a; if (a=0) {}`);
warning = getLastWarning();
assertEq(warning !== null, true);
assertEq(warning.name, "SyntaxError");
assertEq(warning.message.includes("equality"), true);
assertEq(warning.lineNumber, 1);
assertEq(warning.columnNumber, 14);
// Disabled.
disableLastWarning();
eval(`var a; if (a=0) {}`);
enableLastWarning();
warning = getLastWarning();
assertEq(warning, null);
disableLastWarning();
if (typeof reportCompare === "function")
reportCompare(true, true);