HotPatching via recompilation will require significant work in SDM. If you just did the naive thing and patched in the JS that changed, stuff would break:
1) clinit()s which have already been called would be restored, so classes would get initialized twice 2) some instance fields of the class would get reinitialized 3) callbacks held by JSNI closures might still point to old code in some circumstances I think SDM mode would have to do minimally the following: 1) collect only the JS that actually changed 2) don't emit clinits for already live classes, and if the user added a new clinit to an existing class or a new statically initialized field, force a full refresh 3) don't re-emit field initializers for existing fields on classes, only for new added fields 4) if method signatures change, may have to force a full refresh 5) the code must be patched in via linker-dependent scope injection as if it were an AsyncFragment On Sat, Sep 6, 2014 at 9:05 AM, Ivan Markov <[email protected]> wrote: > Another option would be to abandon Chrome LiveEdit completely in favor of > a do-it-yourself approach. > JavaScript does allow functions and variables redefinition, so maybe we > can just inject another <script> inside the iframe with the newly > recompiled permutation? > (To have this instantaneous, only a script containing the changed types > should be injected, however I'm not sure if/what needs to be fixed so that > sourcemaps continue to work after that.) > > -- > You received this message because you are subscribed to the Google Groups > "GWT Contributors" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/google-web-toolkit-contributors/eeeb5252-162b-4381-a3fa-14da59fa9873%40googlegroups.com > <https://groups.google.com/d/msgid/google-web-toolkit-contributors/eeeb5252-162b-4381-a3fa-14da59fa9873%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "GWT Contributors" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAPVRV7cF4WRTQyyPOB7PBhoYC-wCh7qxrVOymJdte-LF4920Gw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
