// 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/.
// TEST BEGIN
// verify debugger line numbers are accurate
try {
`
a
b
c
`;
throw Error(
"error");
}
catch (e) {
assertEq(e.lineNumber, 14);
}
try {
function tagThatThrows(...args) {
throw new Error(); }
tagThatThrows`
multi-line
template
string`;
}
catch (e) {
var stackLines = e.stack.split(
'\n');
var firstLine = stackLines[0].split(
':');
var secondLine = stackLines[1].split(
':');
var firstLineSize = firstLine.length;
var secondLineSize = secondLine.length;
assertEq(firstLine[firstLineSize - 2],
"20");
assertEq(firstLine[firstLineSize - 1],
"45");
assertEq(secondLine[secondLineSize - 2],
"22");
assertEq(secondLine[secondLineSize - 1],
"18");
}
try {
` multi-line
template
with
${substitutionThatThrows()}`
}
catch (e) {
assertEq(e.lineNumber, 42);
}
reportCompare(0, 0,
"ok");