canmove, Confirmed users, Bureaucrats and Sysops emeriti
1,334
edits
(→Document rendering pipeline: another video, and reformat the existing one) |
(→JavaScript Engine: add video) |
||
Line 707: | Line 707: | ||
* Compartments: A '''compartment''' is a subdivision of the JS heap. The mapping from global objects to compartments is one-to-one; that is, every global object has a compartment associated with it, and no compartment is associated with more than one global object. (NB: There are compartments associated with no global object, but they aren't very interesting). When JS code is running SpiderMonkey has a concept of a "current" compartment. New objects that are created will be created in the "current" compartment and associated with the global object of that compartment. | * Compartments: A '''compartment''' is a subdivision of the JS heap. The mapping from global objects to compartments is one-to-one; that is, every global object has a compartment associated with it, and no compartment is associated with more than one global object. (NB: There are compartments associated with no global object, but they aren't very interesting). When JS code is running SpiderMonkey has a concept of a "current" compartment. New objects that are created will be created in the "current" compartment and associated with the global object of that compartment. | ||
* When objects in one compartment can see objects in another compartment (via e.g. iframe.contentWindow.foo) '''cross-compartment wrappers''' or '''CCWs''' mediate the interaction between the two compartments. By default CCWs ensure that the current compartment is kept up-to-date when execution crosses a compartment boundary. SpiderMonkey also allows embeddings to extend wrappers with custom behavior to implement security policies, which Gecko uses extensively (see the Security section for more information). | * When objects in one compartment can see objects in another compartment (via e.g. iframe.contentWindow.foo) '''cross-compartment wrappers''' or '''CCWs''' mediate the interaction between the two compartments. By default CCWs ensure that the current compartment is kept up-to-date when execution crosses a compartment boundary. SpiderMonkey also allows embeddings to extend wrappers with custom behavior to implement security policies, which Gecko uses extensively (see the Security section for more information). | ||
Further documentation: | |||
* Talk: [https://air.mozilla.org/kannan-vijayan-baseline-jit/ Baseline JIT] (Kannan Vijayan, 2014-10-14) | |||
=== XPConnect === | === XPConnect === |