Add generics to JSArrays and JSPromises #153
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds a "typeParameter" field to _RawType that keeps track of the generic type for union and emission purposes. Also handles typedefs so that the generic type is always a valid interop type and not a Dart primitive type.
The typedef handling comes at the cost of not having a better name for these types when they appear in generics and some typedefs being potentially unused. The alternative is to make all typedefs JS types but that means an increased need for conversions. From a quick analysis, this would affect several hundred APIs. We may be able to significantly narrow it down by only affecting typedefs that appear as a generic somewhere, but not sure. Another alternative is to have two typedefs, one for the generic and one for the non-generic. This has its own visual downsides as we now have two typedefs for every typedef.