The answer is no, things should get garbage collected as they would in java. Modern JavaScript engines, ie6 included, use a mark and sweep gc.
On Jul 21, 5:12 pm, Thomas Broyer <[email protected]> wrote: > On Jul 22, 12:22 am, jay <[email protected]> wrote: > > > > > > > OK, I think this now gets into how the GWT compiler generates > > JavaScript from the Java sources... Say I have something like this: > > > class Foo extends HorizontalPanel { > > public Foo() { > > final Button b1 = new Button( "OK" ); > > b1.addClickHandler( new ClickHandler() { > > public void onClick(ClickEvent event) { > > handleButton( b1 ); > > } > > } ); > > add( b1 ); > > > // Add some other buttons in a similar > > // pattern as above > > } > > > private void handleButton( Button b ) { > > // do stuff here > > } > > > } > > > Now, in Java, the anonymous ClickHandler inner class will have a > > reference to the outer class. I assume that the generated JavaScript > > also must have a reference, otherwise there'd be no way for it to call > > the handleButton() method. > > > In this case, the handler *does* have a reference to the widget. > > > So...my question now is: Will this reference prevent the GC from > > taking care of the Foo, Button, and handler instances when Foo goes > > out of scope? Does it perhaps vary by browser? (Maybe....IE can't > > break such cycles, but FF can?) > > Really, I don't know. I'd just rewrite the code to remove the > reference, just in case: > b1.addClickHandler( new ClickHandler() { > public void onClick(ClickEvent event) { > handleButton( (Button) event.getSource() ); > } > } ); -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
