Alexander Markov
828a168622
[vm/kernel/bytecode] Generate bytecode for native methods
...
Change-Id: If47ef9ef4ff5ac3cb3f4f6737590370b647fc9ff
Reviewed-on: https://dart-review.googlesource.com/59180
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2018-06-13 01:16:03 +00:00
Alexander Markov
d52d060950
[vm/kernel/bytecode] Count type arguments argument for factory calls
...
Implicit argument for type arguments vector is not counted
in the number of arguments in ArgumentsDescriptor when calling
generic functions, but VM requires it to be counted
when calling factory constructors.
Bytecode generator is adjusted to cope with this discrepancy.
Change-Id: Id041563dfc68491b87593bcb6dff5cae64bfedc6
Reviewed-on: https://dart-review.googlesource.com/58961
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
Reviewed-by: Zach Anderson <zra@google.com >
2018-06-07 17:24:08 +00:00
Kevin Millikin
6ac6baae8e
Record interfaceTargets for calls on dynamic receivers
...
When calling Object methods on dynamic receivers, record the
interfaceTarget it Kernel. Back ends will use this to treat the call
as a statically typed one. This is half of the problem in
https://github.com/dart-lang/sdk/issues/33293
Bug: https://github.com/dart-lang/sdk/issues/33293
Change-Id: I8d05903e5b85370a4e697ad3afc494cbc14bcc6a
Reviewed-on: https://dart-review.googlesource.com/57820
Commit-Queue: Kevin Millikin <kmillikin@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2018-06-04 09:47:21 +00:00
Alexander Markov
d319d3eda4
[vm/kernel/bytecode] Do not generate bytecode for external (native) members
...
Change-Id: I5887893528b8b0d4c93ef5e1088e229e0338ecef
Reviewed-on: https://dart-review.googlesource.com/58040
Reviewed-by: Zach Anderson <zra@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2018-06-01 22:13:19 +00:00
Kevin Millikin
b62b438e8a
Infer Object members for dynamic receivers
...
For method, getter, and setter invocations with names of methods on
Object on expressions with static type `dynamic`, if the invocation
cannot possibly be an invocation of noSuchMethod, infer the type of
the invocation using the type of the member of Object.
This implements the feature spec
https://github.com/dart-lang/sdk/commit/472ec7780f1bb38f049d0fcc903a69bfb8ef9133
Fixes https://github.com/dart-lang/sdk/issues/32414
Change-Id: I135156346fe1468561d56a01cf3c5f0efde30739
Reviewed-on: https://dart-review.googlesource.com/56942
Commit-Queue: Kevin Millikin <kmillikin@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2018-05-31 12:43:22 +00:00