-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Implement most of the Scala.js IR code generator. #1148
Conversation
Whether a language SAM type is also a valid SAM type for the back-end is a platform-specific thing. On Scala.js, for example, the rules are completely different than for the JVM. This commit therefore moves the logic of the predicate used by ExpandSAMs to decide whether to expand a SAM as an anonymous class to the Platform.
Review by @DarkDimius |
ac6067c
to
94bc01a
Compare
Addressed @smarter's comments from sjrd@d5a637d |
Notable things that are missing at this point: * Pattern matching * Try * Most of the JavaScript interop
@DarkDimius Done. I separated the JS interop stuff in a separate commit. Now each commit shows a correct diff. If you want I can even remove the JS interop commit from this PR, and bring it back in a follow up PR. As you prefer. |
Notable things that are not yet implemented: * JS exports * Scala.js-defined JS classes.
Otherwise LGTM |
@DarkDimius Updated. I declared caches for the phases, and I added more documentation explaining what you commented on. |
Implement most of the Scala.js IR code generator.
Notable things that are missing at this point:
Otherwise, the code generator is pretty complete. It is able to correctly compile and link a modified version of the Reversi demo (modified not to use any pattern matching).