Commit graph

41765 commits

Author SHA1 Message Date
Konstantin Shcheglov
2b40c57781 Add support for patching fields.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2416073002 .
2016-10-13 14:04:58 -07:00
Florian Schneider
2022348b11 Fix wrong initialization of is_loaded in LibraryPrefix.
My previous CL did not check if the prefix is deferred or not
when deserializing it from the snapshot.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2413113004 .
2016-10-13 13:51:02 -07:00
Florian Schneider
701b91eb31 VM: Save one bool when serializing library prefixes.
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 .
2016-10-13 13:36:19 -07:00
Konstantin Shcheglov
318e842389 Extract appending nodes to the list into a helper method.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2417053002 .
2016-10-13 13:29:36 -07:00
Paul Berry
809c80fa49 Fix summarization of closures in toplevel variable declarations in part files.
We were forgetting to include the unitNum, so it was defaulting to zero,
which worked for non-part files but not for part files.

R=scheglov@google.com

Review URL: https://codereview.chromium.org/2416863003 .
2016-10-13 13:29:06 -07:00
Ryan Macnak
1ee954029d Attempt to fix InitialRSS for Golem.
R=zra@google.com

Review URL: https://codereview.chromium.org/2421623002 .
2016-10-13 13:11:41 -07:00
Konstantin Shcheglov
452e180dbc Add support for patching constructors.
R=paulberry@google.com, brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2417933002 .
2016-10-13 13:03:26 -07:00
Ryan Macnak
d8cc8644b1 Switchable call scheduling.
R=fschneider@google.com

Review URL: https://codereview.chromium.org/2404973002 .
2016-10-13 12:44:25 -07:00
Zach Anderson
6f7696dfc9 [windows] fix ~VirtualMemory()
R=asiva@google.com

Review URL: https://codereview.chromium.org/2414133002 .
2016-10-13 12:41:26 -07:00
Siva Annamalai
d8276c4ef9 Skip env_test for dartium as it uses command line options which are not supported for dartium.
R=terry@google.com

Review URL: https://codereview.chromium.org/2413093003 .
2016-10-13 12:40:40 -07:00
Paul Berry
524a7da141 Rewrite DeclarationResolver to match declarations to elements by order rather than offset.
Previously, DeclarationResolver matched declarations to elements using their offsets in the file.  This meant that it could not work with element models built from a summary, since those element models are not guaranteed to contain offsets.  Now, DeclarationResolver assumes that elements appear in the same order in the element model as they do in the file, so it can just match them up using their order.

DeclarationResolver continues to verify element names as it does its matching, so if the ordering of elements ever fails to match up with the ordering of declarations, an exception is almost certain to be thrown.  (The only time it wouldn't be is if the mismatch can't be detected due to multiple elements having the same name).

The new implementation is ~1.6x faster than the previous one.

R=brianwilkerson@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org/2419633002 .
2016-10-13 12:24:54 -07:00
Konstantin Shcheglov
cbb898bca7 Add support for patching class methods.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2412453007 .
2016-10-13 11:55:53 -07:00
Florian Schneider
6d66f3dea8 VM: Make optimized try-catch work in DBC.
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 .
2016-10-13 11:36:23 -07:00
John McCutchan
d483b0d2af Mark reload_sources_test as slow
BUG=

Review URL: https://codereview.chromium.org/2416013002 .
2016-10-13 11:02:36 -07:00
Konstantin Shcheglov
0ae79f6f4b Patch token stream when replace/add nodes.
R=paulberry@google.com, brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2413293002 .
2016-10-13 10:37:18 -07:00
Zach Anderson
9c83c381ec [windows] Implements FreeSubSegment
fixes #27505

R=asiva@google.com

Review URL: https://codereview.chromium.org/2411253002 .
2016-10-13 09:56:36 -07:00
Konstantin Shcheglov
1f373db98e Test that IncrementalCompilationUnitElementBuilder keeps elements in the same order as nodes.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2413023003 .
2016-10-13 09:15:47 -07:00
Bob Nystrom
2305865365 Start cleaning up the HTML tests.
My initial goal was just to move some of the HTML tests off unittest,
but that ended up slurping in some other changes as well. I haven't
finished going through all of the tests, but this puts the
infrastructure in place and fixes a batch of them. I'll do more next.

Changes:

- Add a "minitest" package. This shims just enough of the unittest/test
  API to make it easy to swap it out for unittest without having to
  rework the entire test.

- Go through the HTML tests from A-J and change them to use minitest
  when possible. The ones that aren't possible use asynchrony.
  Minitest doesn't support async tests (yet, maybe).

- Triage those tests and enable ones that are passing. Mark them failing
  if failing. Filed a couple of tracking bugs for the common issues,
  but for other cases, I just left a comment.

- In the process of this, I went ahead and make some of the affected
  tests strong mode clean if they weren't already and it was easy.

- Synchronize changes between dev_compiler's fork of expect and
  pkg/expect. We'll want to unfork those at some point. D-:

This gets dev_compiler from 1985 tests to 2042.

R=jacobr@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/2413073002 .
2016-10-13 08:47:27 -07:00
Brian Wilkerson
1a893edb82 Add prefix to path import to work around breaking change
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2411423003 .
2016-10-13 08:29:09 -07:00
John McCutchan
54619795aa Fix product build
BUG=

Review URL: https://codereview.chromium.org/2416913002 .
2016-10-13 07:57:08 -07:00
John McCutchan
2d0a08baf9 Make reloadSources service RPC public
- [x] Make `reloadSources` RPC public.
- [x] Add an optional 'pause' parameter to `reloadSources`. When set to true, the isolate will enter the debug pause loop immediately after reloading sources and before resuming execution. This makes it possible for debugger clients to set breakpoints before resuming.
- [x] Add reload_sources_test which tests pausing after reload.
- [x] Fix a bug in `GetVarDescriptors` where a null code object could be used.

R=turnidge@google.com

Review URL: https://codereview.chromium.org/2411153002 .
2016-10-13 07:45:56 -07:00
Terry Lucas
21a554b280 Updated to latest WebKit changes and removed usage of obsolete environment variable
TBR=whesse@google.com

Review URL: https://codereview.chromium.org/2413253002 .
2016-10-13 06:33:04 -07:00
Florian Schneider
d9b1bc93af Fix product mode noSuchMethod with library prefix.
Update analyzer status of test that has a static warning expected.

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/2413033003 .
2016-10-12 19:10:27 -07:00
Siva Annamalai
aae051e4c3 Fix for issue 27567 (inconsistent handling of invalid -D options
BUG=#27567
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2409263004 .
2016-10-12 18:42:30 -07:00
Jacob Richman
72503ff98d Extend ignore_patch_signature_mismatch used by dartium to ignore type parameters with different bounds
BUG=https://github.com/dart-lang/sdk/issues/27568
R=asiva@google.com

Review URL: https://codereview.chromium.org/2405193004 .
2016-10-12 17:25:55 -07:00
Florian Schneider
d99229026e Fix issues with argument evaluation order and noSuchMethod errors.
Fix tests to conform to spec bahavior.

Update dart2js test status.

BUG=#27572
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2416513003 .
2016-10-12 17:04:55 -07:00
Nicholas Shahan
96f485b075 Fix file name handling on windows
Paths on windows were having the drive letter (ex: c:\) recognized as
a URI scheme.

Fixes #27450

R=vsm@google.com

Review URL: https://codereview.chromium.org/2413823002 .
2016-10-12 14:30:15 -07:00
Nicholas Shahan
d8505ee264 Fix library name insert and access inconsistency on windows
Make naming of libraries on windows consistent with the behaivor on
linux and mac.

Fixes #27576

R=vsm@google.com

Review URL: https://codereview.chromium.org/2415653002 .
2016-10-12 14:14:00 -07:00
Ryan Macnak
dc53ea46bc Additional asserts to debug issue #26927.
R=fschneider@google.com

Review URL: https://codereview.chromium.org/2413013002 .
2016-10-12 13:54:10 -07:00
Florian Schneider
ecb818a991 AOT: Add missing native entry points for secure sockets.
These are only accessed from native code on MacOS/iOS.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2419653002 .
2016-10-12 13:04:22 -07:00
Konstantin Shcheglov
33ecec5d4f Replace expect() with outOfTestExpect() in Analysis Server performance benchmark.
In package:test function expect() does not want to be used outside of
test() methods. So, we need a partial copy for using it in integration
tesitng code, and performance benchmarks.

R=paulberry@google.com, brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2413573003 .
2016-10-12 12:57:03 -07:00
Zachary Anderson
08d70cdca5 DBC: Fix CheckCids instruction
R=fschneider@google.com

Review URL: https://codereview.chromium.org/2408423004 .
2016-10-12 12:45:38 -07:00
Nicholas Shahan
2a51e46153 Copy new JS Interop test from dev_compiler test suite.
The test was added in the issue #2394103002.

R=vsm@google.com

Review URL: https://codereview.chromium.org/2402163002 .
2016-10-12 10:15:34 -07:00
Regis Crelier
ba2c6e397c Remove redundant code in parser.
R=zra@google.com

Review URL: https://codereview.chromium.org/2411303003 .
2016-10-12 10:10:21 -07:00
Zach Anderson
86060cb0fb GN: Fix gn_build.py for Windows
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2407413003 .
2016-10-12 10:08:23 -07:00
John McCutchan
7fd9df4d91 Improvements to NoSuchMethodError.toString
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 .
2016-10-12 09:52:51 -07:00
Zachary Anderson
3066d28c0d GN: Add commands to bot scripts
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2412163002 .
2016-10-12 09:42:37 -07:00
Terry Lucas
6d946b88f3 Update to WebKit fix
TBR=asiva@google.com

Review URL: https://codereview.chromium.org/2412153002 .
2016-10-12 09:19:10 -07:00
William Hesse
41b82b99e6 Add buildbot scripts for GN builders and dartdevc testers
BUG=https://github.com/dart-lang/sdk/issues/27406
R=rnystrom@google.com, zra@google.com

Review URL: https://codereview.chromium.org/2412553002 .
2016-10-12 14:31:43 +02:00
Konstantin Shcheglov
377dd61e2f Move 'linter' to 0.1.28 tag.
TBR

R=brianwilkerson@google.com, pquitslund@google.com
BUG=

Review URL: https://codereview.chromium.org/2417493002 .
2016-10-11 21:32:57 -07:00
Brian Wilkerson
5f5abd848c Fix exception in checked mode
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2409963004 .
2016-10-11 17:30:16 -07:00
Konstantin Shcheglov
2150f5d1d1 Patch imports and function type aliases. Report more errors.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2405383002 .
2016-10-11 17:08:53 -07:00
Zachary Anderson
da388d21c6 DBC: Use type cache for more checks
Flutter layout benchmark ~10.5k us -> ~8.5k us for a total 1.76x improvement on the day =)

R=fschneider@google.com

Review URL: https://codereview.chromium.org/2410863004 .
2016-10-11 15:20:26 -07:00
Ryan Macnak
bb85b32d51 Fix --verify-on-transition for OSR and concurrent sweep.
Wait for concurrent sweep tasks before verifying points, as building the allocation set expects unmarked objects.

Make assertion okay with a missing stack map at entry, which transiently exists for OSR, as the frame looks the same as unoptimized code here.

Fixes #13608
Fixes #23683
Reproduces issue #26927

R=fschneider@google.com

Review URL: https://codereview.chromium.org/2411453003 .
2016-10-11 15:03:09 -07:00
Zachary Anderson
775fce18d5 DBC: Add Smi fastpath to AssertAssignable
Flutter layout benchmark 14k us -> 10k us. ~30%
improvement in checked mode. There still appear
to be a lot of checks that should be hitting the
cache, so there may be other fast-paths needed
as well.

R=fschneider@google.com

Review URL: https://codereview.chromium.org/2404163004 .
2016-10-11 14:25:14 -07:00
Konstantin Shcheglov
56bde6da28 Issue 27542. Guard against CompilationUnitElement is null in SearchMatch.element getter.
R=brianwilkerson@google.com
BUG= https://github.com/dart-lang/sdk/issues/27542

Review URL: https://codereview.chromium.org/2409403002 .
2016-10-11 14:09:09 -07:00
Konstantin Shcheglov
9b2c5ce5b0 Add SdkPatcher and implement top-level function / getter / setter patching.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2411883003 .
2016-10-11 14:06:17 -07:00
Ryan Macnak
12b18466bb Reduce size of monomorphic checked entry.
Flutter gallery
VMIsolate(CodeSize): 112293
Isolate(CodeSize): 2065968
ReadOnlyData(CodeSize): 1721336
Instructions(CodeSize): 5625616
Total(CodeSize): 9525213
->
VMIsolate(CodeSize): 112292
Isolate(CodeSize): 2065966
ReadOnlyData(CodeSize): 1721336
Instructions(CodeSize): 5592336 -0.35%
Total(CodeSize): 9491930 -0.59%

R=fschneider@google.com

Review URL: https://codereview.chromium.org/2403613002 .
2016-10-11 13:58:49 -07:00
Konstantin Shcheglov
2a000e1587 Issue 27539. Check that the source is not modified between constructor and correction computing.
R=brianwilkerson@google.com
BUG= https://github.com/dart-lang/sdk/issues/27539

Review URL: https://codereview.chromium.org/2411063002 .
2016-10-11 13:41:44 -07:00
Florian Schneider
e25461c151 VM Propagate receiver type from calls to unique selectors in AOT compilation.
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 .
2016-10-11 13:17:47 -07:00