dart-lang/js-interop — pull request #51 by a14n (2013-03-07 16:00:40+00:00)
Title: Allow to retain and release Serializable<Proxy>

There are two main changes :

- `Proxy` now implements `Serializable` : this allows to change the type of the parameter of `retain` and `release` from `Proxy` to `Serializable` without breaking change or duplicated methods to handle either `Serializable` or `Proxy`.
- change the return type of `retain` from `Proxy` to `dynamic`. I was initially returning `Serializable` but it was not backward compatible because one could have code like the following and a warning would have been displayed on `proxy.someMethod()`. With `dynamic` no warning should appear.

```dart
final proxy = js.retain(new js.Proxy(js.context.Foo));
proxy.someMethod();
```

I made several implementations of that feature - a14n/js-interop@9c67b9c32ad7f04ab5d7de7c2d17df8bb5cc3fe3 a14n/js-interop@af2b0621d0bac19fcc31b9a87e38e18b3bef17aa a14n/js-interop@ee2c582a2785d3a1319f6a4a694e781e56fcab6f a14n/js-interop@a19184a6aebfc077efdfe3614251e71c2bf6388e - but this PR uses the last one that I find the most fine.