Introduce column number type that represents origin and wasm bit
Categories
(Core :: JavaScript Engine, task, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox118 | --- | fixed |
People
(Reporter: arai, Assigned: arai)
References
(Blocks 1 open bug)
Details
Attachments
(26 files)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review |
SpiderMonkey uses both 0-origin column number and 1-origin column number (see a graph in bug 1846913 comment #3 for details), and also the column number can have the wasm flag bit in some place:
// As a terrible hack to avoid changing the tons of places that pass around
// (url, line, column) tuples to instead passing around a Variant that
// stores a (url, func-index, bytecode-offset) tuple for wasm frames,
// wasm stuffs its tuple into the existing (url, line, column) tuple,
// tagging the high bit of the column to indicate "this is a wasm frame".
// When knowing clients see this bit, they shall render the tuple
// (url, line, column|bit) as "url:wasm-function[column]:0xline" according
// to the WebAssembly Web API's Developer-Facing Display Conventions.
// https://webassembly.github.io/spec/web-api/index.html#conventions
// The wasm bytecode offset continues to be passed as the JS line to avoid
// breaking existing devtools code written when this used to be the case.
MOZ_ASSERT(!(codeRange_->funcIndex() & ColumnBit));
if (column) {
*column = codeRange_->funcIndex() | ColumnBit;
It's unclear which field, parameter or return value uses which origin and whether it can have the wasm flag bit.
Introducing a dedicate type for each case should help figuring out the current situation and also will help migrating to 1-origin column number in bug 1144340.
| Assignee | ||
Comment 1•2 years ago
|
||
| Assignee | ||
Comment 2•2 years ago
|
||
Depends on D185372
| Assignee | ||
Comment 3•2 years ago
|
||
Depends on D185739
| Assignee | ||
Comment 4•2 years ago
|
||
Depends on D185740
| Assignee | ||
Comment 5•2 years ago
|
||
Depends on D185741
| Assignee | ||
Comment 6•2 years ago
|
||
Depends on D185742
| Assignee | ||
Comment 7•2 years ago
|
||
Depends on D185743
| Assignee | ||
Comment 8•2 years ago
|
||
Depends on D185744
| Assignee | ||
Comment 9•2 years ago
|
||
Depends on D185745
| Assignee | ||
Comment 10•2 years ago
|
||
Depends on D185746
| Assignee | ||
Comment 11•2 years ago
|
||
Depends on D185747
| Assignee | ||
Comment 12•2 years ago
|
||
Depends on D185748
| Assignee | ||
Comment 13•2 years ago
|
||
Depends on D185749
| Assignee | ||
Comment 14•2 years ago
|
||
Depends on D185750
| Assignee | ||
Comment 15•2 years ago
|
||
Depends on D185751
| Assignee | ||
Comment 16•2 years ago
|
||
Depends on D185752
| Assignee | ||
Comment 17•2 years ago
|
||
Depends on D185753
| Assignee | ||
Comment 18•2 years ago
|
||
Depends on D185754
| Assignee | ||
Comment 19•2 years ago
|
||
Depends on D185755
| Assignee | ||
Comment 20•2 years ago
|
||
Depends on D185756
| Assignee | ||
Comment 21•2 years ago
|
||
Depends on D185757
| Assignee | ||
Comment 22•2 years ago
|
||
Depends on D185758
| Assignee | ||
Comment 23•2 years ago
|
||
Depends on D185759
| Assignee | ||
Comment 24•2 years ago
|
||
Depends on D185760
| Assignee | ||
Comment 25•2 years ago
|
||
Depends on D185761
| Assignee | ||
Comment 26•2 years ago
|
||
Depends on D185762
| Assignee | ||
Comment 27•2 years ago
|
||
Depends on D185763
Comment 28•2 years ago
|
||
Comment 29•2 years ago
|
||
Backed out for causing spidermonkey bustages
- Backout link
- Push with failures
- Failure Log
- Failure line: /builds/worker/checkouts/gecko/js/src/debugger/Script.cpp:725:8: error: class member cannot be redeclared
Comment 30•2 years ago
|
||
Comment 31•2 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/e496e8ae0294
https://hg.mozilla.org/mozilla-central/rev/f3bd9d7686c1
https://hg.mozilla.org/mozilla-central/rev/1cee58fb35ca
https://hg.mozilla.org/mozilla-central/rev/e9f19ef7fa03
https://hg.mozilla.org/mozilla-central/rev/0dcca111ea50
https://hg.mozilla.org/mozilla-central/rev/3c1671cdc76c
https://hg.mozilla.org/mozilla-central/rev/f1817bc330b7
https://hg.mozilla.org/mozilla-central/rev/e760d2228607
https://hg.mozilla.org/mozilla-central/rev/43af4e4c0eb6
https://hg.mozilla.org/mozilla-central/rev/7d89a3d4f78e
https://hg.mozilla.org/mozilla-central/rev/16ead9106590
https://hg.mozilla.org/mozilla-central/rev/23152821fdff
https://hg.mozilla.org/mozilla-central/rev/c902ce08d170
https://hg.mozilla.org/mozilla-central/rev/fc1ca17609c2
https://hg.mozilla.org/mozilla-central/rev/64a80f31ee5e
https://hg.mozilla.org/mozilla-central/rev/e710b987f162
https://hg.mozilla.org/mozilla-central/rev/517b02ba0418
https://hg.mozilla.org/mozilla-central/rev/b7407f6a8f97
https://hg.mozilla.org/mozilla-central/rev/361253f95a3c
https://hg.mozilla.org/mozilla-central/rev/adf33e49f1db
https://hg.mozilla.org/mozilla-central/rev/92c56890a465
https://hg.mozilla.org/mozilla-central/rev/72a25c44626a
https://hg.mozilla.org/mozilla-central/rev/b472e6999fc6
https://hg.mozilla.org/mozilla-central/rev/d48ed29ea766
https://hg.mozilla.org/mozilla-central/rev/2d87cadd4c4e
https://hg.mozilla.org/mozilla-central/rev/c90a50e57b5e
https://hg.mozilla.org/mozilla-central/rev/52f816cfe298
| Assignee | ||
Updated•2 years ago
|
Description
•