Open Bug 1663365 Opened 3 months ago Updated 22 days ago

Break up jsfriendapi.h into discrete headers

Categories

(Core :: JavaScript Engine, task, P3)

task

Tracking

()

ASSIGNED

People

(Reporter: Waldo, Assigned: Waldo)

Details

(Keywords: leave-open)

Attachments

(14 files)

47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review

jsfriendapi.h is a dumping ground. But worse than that, it's a dumping ground that regularly changes, and every change tends to mean the world needs to be rebuilt. (StringType.h and gc/Tracer.h have apparently razor-thin dependencies on it, as the lowest-level users I've yet found. NativeObject.h is another user that probably pretty well poisons the well.) It should be split up into subject-specific headers, and some parts of it are perfectly worthy of promotion to regular ol' public API that's as stable as anything else public.

I've got a bunch of patches which don't fully do this, but they trim off some solid chunks of it. Dunno how long the whole thing will take, but they make a good start.

Pushed by jwalden@mit.edu:
https://hg.mozilla.org/integration/autoland/rev/d77193517dc5
Create a new js/public/String.h header seeded with the inline string functions previously found in jsfriendapi.h.  (More functions ought be added/moved here, but these make a good start.)  r=jandem,geckoview-reviewers,agi
https://hg.mozilla.org/integration/autoland/rev/1b452e9cdd96
Move |XrayJitInfo| functionality to its own friend header.  r=jandem
https://hg.mozilla.org/integration/autoland/rev/0426b064615e
Move |JSJitInfo| out of jsfriendapi.h to its own experimental header.  r=jandem
https://hg.mozilla.org/integration/autoland/rev/08dc45f7b61c
Move various Object-related functions to a new js/public/Object.h header.  r=jandem
https://hg.mozilla.org/integration/autoland/rev/fe6e573c4ad1
Move allocation-logging functions and |JS_COUNT_{CTOR,DTOR}| into a separate header.  r=jandem
https://hg.mozilla.org/integration/autoland/rev/d554007fd1dd
Move JSM environment-related functionality to its own header.  r=jandem
https://hg.mozilla.org/integration/autoland/rev/71ed820a5be0
Move DOM proxy-related details (including expand support) to separate headers out of jsfriendapi.h.  r=jandem
Keywords: leave-open
Pushed by jwalden@mit.edu:
https://hg.mozilla.org/integration/autoland/rev/b6e8a7a7b875
Move Intl extras functionality (Mozilla extensions, standardized-but-not-stable/shippable-yet) to namespace JS, improve comments, and make various styling tweaks.  r=jandem
https://hg.mozilla.org/integration/autoland/rev/220512fd6767
Move Intl functionality out of jsfriendapi.h to a new header.  r=jandem
Pushed by jwalden@mit.edu:
https://hg.mozilla.org/integration/autoland/rev/1ea8f7901c1f
Move Intl extras functionality (Mozilla extensions, standardized-but-not-stable/shippable-yet) to namespace JS, improve comments, and make various styling tweaks.  r=jandem
https://hg.mozilla.org/integration/autoland/rev/5859377d6cd9
Move Intl functionality out of jsfriendapi.h to a new header.  r=jandem
Flags: needinfo?(jwalden)
Pushed by jwalden@mit.edu:
https://hg.mozilla.org/integration/autoland/rev/394718eef505
Don't include "js/friend/ErrorMessages.h" in jsfriendapi.h.  r=arai
Pushed by jwalden@mit.edu:
https://hg.mozilla.org/integration/autoland/rev/65fe0b522296
Various stylistic cleanups to ctypes-related functionality in jsfriendapi.h, in advance of a move into a separate header.  r=jandem
https://hg.mozilla.org/integration/autoland/rev/2fba8c0952af
Move ctypes APIs out of jsfriendapi.h into a new js/public/experimental/CTypes.h header.  r=jandem
https://hg.mozilla.org/integration/autoland/rev/5c172e4faf1d
Move CTypes APIs out of jsapi.h and into js/public/experimental/CTypes.h.  r=jandem
You need to log in before you can comment on or make changes to this bug.