GitHub PushEvent at 2014-06-02 00:26:40
Repository: htmlbars
Actor: mixonic
Payload: {"shas":[["a32be73712b7ee5203fc1596fe1f3d892dbe6680","7cab19218129c8be3fddad3960a792e179e562d8@madhatted.com","Third pass at supporting namespaces, SVG\n\nThis namespace implementation involved several steps.\n\n  1. As the parser (token-handlers) sees elements, it flags them with\n     namespaces, or as being HTML integration points.\n  2. As the ast walker handles these elements, it emits opcodes to open\n     and close dom helper contexts.\n  3. As the template compiler runs, it manages a stack of dom helpers, a\n     list of variable names, and emits opcodes for picking a dom helper\n     to the fragment and hydration compilers.\n  4. At completion, the template compiler puts all dom helper variables\n     into the shared scope of the template. The build and hydration\n     steps share access to this scope.\n  5. At runtime, the initial dom helper instance is passed to the\n     template (or defaulted) as `dom` in scope.\n  6. The fragment and hydration sections use the proper dom helper\n     object as signalled by their compiler.\n\nTemplates can now be passed a custom dom helper at runtime:\n\n    var template = compile(\"<svg></svg>\");\n    template({}, {dom: new DOMHelper(document)});\n\nThis allows hooks or helpers the change to change the DOM namespace or\nroot document for their inner content, and possible inject their own\ncustom dom helper. If the same domHelper is passed, then the fragment\ncan be cached. If a new domHelper is passed, the cachedFragment is\nrebuilt with the run template.","Matthew Beale",true]],"size":1,"ref":"refs/heads/svg","head":"a32be73712b7ee5203fc1596fe1f3d892dbe6680"}