- bring patched SDK generation scripts and VM patch tweaks that allow VM patch files to be parsed by analyzer front-end;
Patched SDK is an SDK with all VM patches spliced into it. Kernel compiler is based on the analyzer front-end which does
not have any patch files support/model so for it to produce Kernel files that match VM we need to generate a such patched SDKs.
- bring test script modifications that allow to test Kernel pipeline
BUG=
R=asiva@google.com, kmillikin@google.com, whesse@google.com, zra@google.com
Review URL: https://codereview.chromium.org/2434123003 .
This CL changes the semantics of `dart2js --generic-method-syntax`
generated code for `e as T` where `T` is a method type parameter.
The old behavior was to raise a `TypeError` at runtime when such an
expression was evaluated. The new behavior is to consider `T` as an
alias for `dynamic`, i.e., `e as T` will then always succeed.
Addresses part of issue 27460, omits a part that is not yet agreed upon.
R=johnniwinther@google.com
Review URL: https://codereview.chromium.org/2388843002 .
When loading a snapshot all library prefixes should be considered not
loaded. This makes code running from a JIT snapshot throw the correct
error when using a deferred prefix before it is loaded.
Also, update test status and avoid skipping tests.
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2416963003 .
The catch entry block has all locals in fixed locations
(Rj) where j = kNumberOfRegisters - i for parameter i.
This means we reserve a range of DBC registers at the top-end of the frame.
Those registers are blocked for general allocation to avoid any overlap
with the rest of the registers that are allocated from the bottom.
Each optimized frame with a try-catch will be kNumberOfRegisters wide.
BUG=
R=vegorov@google.com
Review URL: https://codereview.chromium.org/2388093003 .
This makes the following improvements:
* Always show the call that was made, with arguments.
* ...and show the actual arguments in more cases.
* Be less confusing in the case of a call on the null receiver.
* Be less redundant in the output.
* Report when a constructor is called with the wrong number of arguments.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2405353002 .
If there is no override of noSuchMethod in any class, we can
propagate the receiver type downwards from calls that call a unique
selector.
This speeds up dart2js by around 3%, a particle simulation benchmark by around 10%.
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2412653002 .
Added two new bytecodes: LoadFieldExt, StoreFieldExt that
store the field offset in the following nop-instruction that
is skipped. This allows offsets up to 16 bit.
BUG=
R=zra@google.com
Review URL: https://codereview.chromium.org/2399333003 .
For code objects, don't allocate symbol strings when printing the disassembly.
Don't try to make disassembling work with background compilation -- instead make sure that we don't allocate on the Dart heap while disassembling.
Add NoSafepointScope around disassemble functions to assert that no allocation happens.
Also, remove some dead code from object.cc.
BUG=#27430
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2363413004 .
Catch block entries need to be considered when doing lazy deoptimization.
In addition to the return, also patch all catch entry blocks in a function scheduled for lazy deoptimization.
Also, move restoring the pool pointer to the jump-to-handler stub to simplify patching the catch entry.
BUG=#27419
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2357343003 .
The current implementation of StreamIterator has a one-element buffer which
allows it listen for the next even eagerly, and only pause if consumption
doesn't keep up with production.
However, StreamIterator is also used by both VM and dart2js implementations
of "await for", and according to the specification, the iterated stream
must be paused between loop iterations.
The CL removes the one-element buffer and forces a pause after each event.
R=floitsch@google.com
Review URL: https://codereview.chromium.org/2149893002 .