= JavaScriptCore Roundup, April 2012 Edition = Filip Pizlo moderates. == Status == Two interpreters, two jits! The low-level interpreter, the "classic" interpreter, the baseline JIT, and the optimizing JIT (the DFG). GC: Parallel GC, enabled in Mac and Qt ES6 work: Andy Wingo working on this Test262: ES5 Conformance Suite, preparing for ES6. Oliver Hunt introduces self, as TC39 member. Erik Arvidsson introduces self as Google's representative. Pizlo asks about TC39 status. Erik answers: there is ES6 and there is Harmony. Harmony are things planned for future versions that include but are not limited to ES6. The spec is out. There are contentious things that are in there, and there. Modules seem tricky but necessary, V8 does it, JSC should do it at some point. The current spec is fairly stable, loading is still in flux. Latency and RTTs are a concen. Modules are lexically scoped and there is no global object at the top of the scope chain. Let strict mode only? The question of sharing also: loading a module multiple times loads code multiple times, currently, would be good to fix to allow shared code. E.g. generated code references objects from a heap. Pizlo asks about loading the same module twice from two different places, what happens. Oliver says that there isn't an answer yet. Code sharing is an impl question; do users get to share data, though? Mark notes that module loaders can prevent sharing. Oliver notes that the syntax (and semantics?) for importing a module statically is currently implementation-dependent wrt interpreting the "from STRING" part. In JS we will probably expose a module loading hander. Pizlo asks about interaction between load handlers and async loading. Oliver notes that anywhere outside of module loading, you have to use an async module loader. You get a callback when that module is able to use the static imports syntax. Ggaren asks, module loading implies that there will be a loader for all JS, even outside the browser. Oliver says yes, you need to allow embedders to provide a module loader. Ggaren says you need a run loop, event processing, ... TC39 members say something muddy. Oliver says the spec provides for a URI mapping, so that getting a module for a given URI is idempotent. GGaren says that a run loop makes GC better too. Pizlo asks how this affects workers. Erik says he doesn't see how it affects workers at all. Erik says that there are two modes: one that allows loading and one that does not. `