diff --git a/js/src/frontend/SharedContext.h b/js/src/frontend/SharedContext.h index 069d48414c6e..7fb4e086a633 100644 --- a/js/src/frontend/SharedContext.h +++ b/js/src/frontend/SharedContext.h @@ -582,8 +582,7 @@ class FunctionBox : public ObjectBox, public SharedContext void setStart(const TokenStream& tokenStream) { bufStart = tokenStream.currentToken().pos.begin; - startLine = tokenStream.getLineno(); - startColumn = tokenStream.getColumn(); + tokenStream.srcCoords.lineNumAndColumnIndex(bufStart, &startLine, &startColumn); } void trace(JSTracer* trc) override; diff --git a/js/src/frontend/TokenStream.h b/js/src/frontend/TokenStream.h index 8e9a0e899c32..648b40f73730 100644 --- a/js/src/frontend/TokenStream.h +++ b/js/src/frontend/TokenStream.h @@ -333,8 +333,6 @@ class MOZ_STACK_CLASS TokenStream } const CharBuffer& getTokenbuf() const { return tokenbuf; } const char* getFilename() const { return filename; } - unsigned getLineno() const { return lineno; } - unsigned getColumn() const { return userbuf.offset() - linebase - 1; } bool getMutedErrors() const { return mutedErrors; } JSVersion versionNumber() const { return VersionNumber(options().version); } JSVersion versionWithFlags() const { return options().version; } diff --git a/js/src/jit-test/tests/arrow-functions/column-number.js b/js/src/jit-test/tests/arrow-functions/column-number.js new file mode 100644 index 000000000000..e5e34f80a527 --- /dev/null +++ b/js/src/jit-test/tests/arrow-functions/column-number.js @@ -0,0 +1,6 @@ +function f() { return g(abcd => Error()); } +function g(x) { return x(); } +var err = f(1, 2); +var lines = err.stack.split("\n"); +assertEq(lines[0].endsWith(":1:33"), true); +assertEq(lines[1].endsWith(":2:24"), true);