Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dart2js: should provide a complete implementation of dart:mirrors at runtime #6490

Closed
peter-ahe-google opened this issue Nov 2, 2012 · 19 comments

Comments

@peter-ahe-google
Copy link
Contributor

In r14469 we stubbed out some of how runtime mirrors can work in dart2js.

There are great technical challenges to overcome in implementing mirrors for dart2js, and we expect there wil be a non-trivial overhead for the most general usages.

At the time of writing, mirrors for are not being actively developed as the dart2js team is focusing on performance and language feature completeness. But patches are welcome!

@peter-ahe-google
Copy link
Contributor Author

Issue #6907 has been merged into this issue.


cc @floitschG.

@peter-ahe-google
Copy link
Contributor Author

Set owner to @peter-ahe-google.
Removed this from the Later milestone.
Added this to the M5 milestone.
Added Started label.

@peter-ahe-google
Copy link
Contributor Author

The following should work now (in unminified code):

* Invoking instance methods.

* Setting instane fields.

* Getting instance fields.

I'm currently working on implementing support for reflecting on libraries.

@kasperl
Copy link

kasperl commented May 23, 2013

Added TriageForM5 label.

@peter-ahe-google
Copy link
Contributor Author

https://codereview.chromium.org/15858005/ provides support setting and getting fields in library and class mirrors.

For those who are counting, this means that 4 out of 10 tests are passing in https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/tests/lib/mirrors/mirrors_test.dart

Remember that this is not yet supported in minified code.

@peter-ahe-google
Copy link
Contributor Author

CL 15858005 landed in r23070.

@peter-ahe-google
Copy link
Contributor Author

https://codereview.chromium.org/15895002/ provides support for ClosureMirror.

For those who are counting, this means that 5 out of 10 tests are passing in tests/lib/mirrors/mirrors_test.dart.

Still no support for minified code.

@peter-ahe-google
Copy link
Contributor Author

https://codereview.chromium.org/15857005/ implements newInstance on ClassMirror.

For those who are counting, this means that 6 out of 10 tests are passing in tests/lib/mirrors/mirrors_test.dart.

Still no support for minified code.

@peter-ahe-google
Copy link
Contributor Author

CL 15895002 committed as r23135.
CL 15857005 committed as r23137.

@peter-ahe-google
Copy link
Contributor Author

https://codereview.chromium.org/15861005/ implements ClassMirror.owner and LibraryMirror.uri.

For those who are counting, this means that 8 out of 10 tests are passing in tests/lib/mirrors/mirrors_test.dart.

Still no support for minified code.

@peter-ahe-google
Copy link
Contributor Author

CL 15861005 committed as r23211.

@peter-ahe-google
Copy link
Contributor Author

https://codereview.chromium.org/16097002/ implements simple and qualified names.

For those who are counting, this means that 9 out of 10 tests are passing in tests/lib/mirrors/mirrors_test.dart.

Still no support for minified code.

@peter-ahe-google
Copy link
Contributor Author

CL 16097002 committed as r23225.

@peter-ahe-google
Copy link
Contributor Author

Issue #10905 tracks providing reflective access to metadata in dart2js.

@kasperl
Copy link

kasperl commented May 28, 2013

Removed TriageForM5 label.

@peter-ahe-google
Copy link
Contributor Author

Removed this from the M5 milestone.
Added this to the M6 milestone.

@peter-ahe-google
Copy link
Contributor Author

https://codereview.chromium.org/15979020/ implements InstanceMirror.invoke in minified code.

@peter-ahe-google
Copy link
Contributor Author

CL 15979020 landed in r23596.

@sigmundch
Copy link
Member

we are now tracking missing features on individual bugs, so we can close this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants