Commit Graph

4835 Commits

Author SHA1 Message Date
Johnni Winther 6b156993db Use Name instead of Selector in SemanticSendVisitor
BUG=
R=floitsch@google.com, sigmund@google.com

Review URL: https://codereview.chromium.org//1314573002.
2015-08-25 10:03:32 +02:00
Johnni Winther 4ed23aff42 Remove SendResolver.computeSendStructure.
BUG=
R=floitsch@google.com

Committed: https://github.com/dart-lang/sdk/commit/4013a9aae54ee60d344247d295b750f370ce2417

Reverted: https://github.com/dart-lang/sdk/commit/73a49a5ddbf7bc989adfd07668db1d29c98f91f2

Review URL: https://codereview.chromium.org//1306143002.
2015-08-25 09:32:26 +02:00
Johnni Winther 73a49a5ddb Revert "Remove SendResolver.computeSendStructure."
This reverts commit 4013a9aae5.

BUG=

Review URL: https://codereview.chromium.org//1311123002.
2015-08-24 13:46:28 +02:00
Johnni Winther 4013a9aae5 Remove SendResolver.computeSendStructure.
BUG=
R=floitsch@google.com

Review URL: https://codereview.chromium.org//1306143002.
2015-08-24 11:31:23 +02:00
Karl Klose 999ec11985 dart2js cps: Handle native functions, getters, and setters.
R=asgerf@google.com

Review URL: https://codereview.chromium.org//1288013002 .
2015-08-24 11:01:54 +02:00
Stephen Adams 5d575f307c dart2js cps: Generate fast checks for 'is String' and 'is bool'.
R=sigmund@google.com

Review URL: https://codereview.chromium.org//1301363002 .
2015-08-21 17:41:21 -07:00
Johnni Winther 4b85e5b393 Handle erroneous constant constructor call.
BUG=

Review URL: https://codereview.chromium.org//1309743002.
2015-08-21 15:05:58 +02:00
Johnni Winther 087155dcde Remove code accidentally committed.
BUG=

Review URL: https://codereview.chromium.org//1306113002.
2015-08-21 14:22:01 +02:00
Johnni Winther bda8db4785 Make InferrerVisitor implement SemanticSendVisitor directly and delete ResolvedVisitor.
BUG=
R=floitsch@google.com

Review URL: https://codereview.chromium.org//1308803002.
2015-08-21 14:11:33 +02:00
Johnni Winther 9a64a00ab9 Deprecate visitStaticSend in ResolvedVisitor.
BUG=
R=floitsch@google.com

Review URL: https://codereview.chromium.org//1302313002.
2015-08-21 14:04:48 +02:00
Stan Manilov 96a76a9bb1 Add documentation for StringToken.stringValue
It simply points to the documentation for Token.stringValue. Also: fix
minor typo.

R=ahe@google.com

Review URL: https://codereview.chromium.org//1283373005 .
2015-08-21 09:50:57 +02:00
Johnni Winther 9ce4da5e1a Refactor qualified send sets.
Closes #23795

R=floitsch@google.com

Review URL: https://codereview.chromium.org//1293953006.
2015-08-21 09:34:45 +02:00
Sigmund Cherem 6e0b2418c7 [dart2js] fix inference of ??= and []??=
Fixes #24134
Fixes #24135

R=floitsch@google.com, johnniwinther@google.com

Review URL: https://codereview.chromium.org//1305663002 .
2015-08-20 07:32:34 -07:00
Johnni Winther 34db6ed4cb Handle static assignment to final/const fields in SSA.
BUG=
R=floitsch@google.com

Review URL: https://codereview.chromium.org//1305443004.
2015-08-20 14:25:34 +02:00
Johnni Winther 99bc71afe6 Move common identifiers, names and selectors to a separate library.
BUG=
R=sigurdm@google.com

Review URL: https://codereview.chromium.org//1299413002.
2015-08-20 13:08:10 +02:00
Johnni Winther 256092eee3 Refactor handling of unqualified static updates.
BUG=
R=floitsch@google.com

Review URL: https://codereview.chromium.org//1292673005.
2015-08-20 12:43:28 +02:00
Johnni Winther b731e6230b Refactor updates of locals.
BUG=
R=floitsch@google.com

Review URL: https://codereview.chromium.org//1303503002.
2015-08-20 12:32:09 +02:00
Kevin Millikin aa9e569ecf dart2js: Use 'new Array' instead of 'Array' in the JS output.
Though the spec says that they are equivalent when called, they are not
optimized equivalently by V8.  This might be considered a performance bug in
V8 (https://code.google.com/p/v8/issues/detail?id=4380) but we should use
the much faster one unless that issue is fixed.

BUG=
R=asgerf@google.com, floitsch@google.com

Review URL: https://codereview.chromium.org//1291323004 .
2015-08-20 11:03:40 +02:00
Kevin Millikin 1ed82e83c8 dart2js: Just because it's slow doesn't mean it has to be dumb.
Change LinkEntry.slowLength to be iterative instead of recursive.  The
Guassian blur benchmark, ported from the Kraken JS benchmark suite, has a
427,200 element list literal.  Computing the length of a linked list of
427,200 entries will be a stack overflow.

R=asgerf@google.com
BUG=

Review URL: https://codereview.chromium.org//1299393002 .
2015-08-20 11:01:51 +02:00
Stephen Adams 24588d9fec Recognize corelib.identical.
Convert to BuiltinOperator.Identical to enable type based
simplifications.  Remaining unsimplified BuiltinOperator.Identical
applications are still codegen-ed as calls to corelib.identical.

About half of the calls to identical() in swarm are improved.

R=asgerf@google.com

Review URL: https://codereview.chromium.org//1294283005 .
2015-08-19 16:31:50 -07:00
Harry Terkelsen 98e67aa065 dart2js: fail gracefully with invalid package config
Fixes #24118
Fixes #24120
Fixes #24121
Fixes #24122

BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org//1291283006 .
2015-08-19 16:00:37 -07:00
Sigmund Cherem 27b55b60bb Revert use of ?? to unbreak the build
TBR=sra@google.com

Review URL: https://codereview.chromium.org//1293533006 .
2015-08-19 14:16:16 -07:00
Sigmund Cherem aae02054d2 Record information about constants in dump info
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//1301903002 .
2015-08-19 13:52:49 -07:00
Stephen Adams bd4b9690a2 cps: Use BuiltinOperator.IsNumber for 'is num'
Use double quotes for JavaScript string in expansion of 'is num' for consistency with other strings.

R=asgerf@google.com

Review URL: https://codereview.chromium.org//1294423002 .
2015-08-19 08:21:35 -07:00
Asger Feldthaus 73a6229d7c dart2js cps: Replace interceptor calls with interceptor constants.
BUG=
R=kmillikin@google.com

Review URL: https://codereview.chromium.org//1298373002 .
2015-08-19 13:16:28 +02:00
Asger Feldthaus 6c6ac77475 dart2js cps: Do not treat final field reads as effectively constant.
This is a workaround until assignment propagation is able to propagate
constants more effectively.

BUG=
R=kmillikin@google.com

Review URL: https://codereview.chromium.org//1296403004 .
2015-08-19 10:53:14 +02:00
Sigmund Cherem 8896ccd385 dart2js: switch to use dart2js_info/info.dart
R=het@google.com

Review URL: https://codereview.chromium.org//1298553002 .
2015-08-18 15:44:38 -07:00
Kevin Millikin 0a12c2c3d1 dart2js CPS: Inline list.forEach.
Instead of building up a CPS term representing the implementation of
forEach, use the CPS translation on the code for forEach.

R=asgerf@google.com

Review URL: https://codereview.chromium.org//1294353002 .
2015-08-18 17:15:18 +02:00
Asger Feldthaus eb3fc17ea9 dart2js cps: Use direct length and index access on strings.
BUG=
R=kmillikin@google.com

Review URL: https://codereview.chromium.org//1293803003 .
2015-08-18 16:08:46 +02:00
Asger Feldthaus ff74930f67 dart2js: Mark startRootIsolate as "used" by the backend.
This fixes a type inference issue where the empty type was inferred for
the parameters to this method.

BUG=
R=herhut@google.com

Review URL: https://codereview.chromium.org//1298173002 .
2015-08-18 15:55:55 +02:00
William Hesse e2928705be Move third_party/pkg/package_config to pkg_tested.
Closes https://github.com/dart-lang/sdk/issues/24092

R=ricow@google.com

Review URL: https://codereview.chromium.org//1296093003 .
2015-08-18 15:04:41 +02:00
Johnni Winther fb7ea815c8 Handle C?.m as C.m for Sends
BUG=
R=floitsch@google.com

Review URL: https://codereview.chromium.org//1294103004.
2015-08-18 11:38:48 +02:00
Asger Feldthaus 64825e695d dart2js cps: Set proper receiver type for intercepted methods.
BUG=
R=kmillikin@google.com

Review URL: https://codereview.chromium.org//1294083002 .
2015-08-18 11:26:54 +02:00
Asger Feldthaus d3d7de8c12 dart2js cps: Add logical rewriter rules to favor null-aware operators.
These useful patterns arise with null-aware operators:

x ? y : x  ==>  x && y
x ? x : y  ==>  x || y

BUG=
R=kmillikin@google.com

Committed: https://github.com/dart-lang/sdk/commit/0e46c8dec97d5ab10c06900c67eeceb1f3e065ba

Review URL: https://codereview.chromium.org//1291073002 .
2015-08-18 11:09:00 +02:00
Johnni Winther 00df363b7a Split resolution into several libraries.
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org//1286993004.
2015-08-18 10:45:22 +02:00
Johnni Winther 1d356f8072 Refactoring resolution of updates to type literals.
BUG=
R=floitsch@google.com

Review URL: https://codereview.chromium.org//1301583002.
2015-08-17 16:23:37 +02:00
Florian Loitsch 672df7c087 dart2js: Don't zone-register callbacks in async functions for every await.
R=johnniwinther@google.com, lrn@google.com

Review URL: https://codereview.chromium.org//1281523003 .
2015-08-17 15:57:34 +02:00
Florian Loitsch 7e64f3d962 Dart2js async-await. Bind the async-body to the current zone.
Also ensure the wrapping of js-functions happens only once per
async-call.

BUG=
R=floitsch@google.com

Review URL: https://codereview.chromium.org//1163833002 .
2015-08-17 15:56:53 +02:00
Kevin Millikin b495fceef8 dart2js CPS: Fix a bug in commuting binary operations.
The Tree IR statement rewriter assumes both operands of a binary
operation are variable uses.  Either one of them could also be `this`.

BUG=
R=asgerf@google.com

Review URL: https://codereview.chromium.org//1284233003 .
2015-08-17 11:17:44 +02:00
Asger Feldthaus 01844e7bb0 dart2js cps: Compile some loops as 'for' loops.
BUG=
R=kmillikin@google.com

Committed: https://github.com/dart-lang/sdk/commit/296cb0b5b45575f9e32acd2cbad2b8969e56cb77

Review URL: https://codereview.chromium.org//1287253002 .
2015-08-17 10:52:35 +02:00
Johnni Winther 720e72428c Check for one-to-many source mappings.
BUG=
R=herhut@google.com

Review URL: https://codereview.chromium.org//1287973002.
2015-08-17 09:57:57 +02:00
Florian Loitsch f9d05b6e29 Fix names of map files in the startup emitter.
R=sigmund@google.com

Review URL: https://codereview.chromium.org//1295873002 .
2015-08-14 22:22:46 +02:00
Asger Feldthaus 13a3413ca2 Revert "dart2js cps: Add logical rewriter rules to favor null-aware operators."
This reverts commit 0e46c8dec9.

BUG=

Review URL: https://codereview.chromium.org//1291313003 .
2015-08-14 15:37:20 +02:00
Asger Feldthaus e1f4ae5482 Revert "dart2js cps: Compile some loops as 'for' loops."
This reverts commit 296cb0b5b4.

TBR=kmillikin@google.com

BUG=

Review URL: https://codereview.chromium.org//1291333002 .
2015-08-14 14:34:04 +02:00
Asger Feldthaus 296cb0b5b4 dart2js cps: Compile some loops as 'for' loops.
BUG=
R=kmillikin@google.com

Review URL: https://codereview.chromium.org//1287253002 .
2015-08-14 12:09:32 +02:00
Asger Feldthaus 0e46c8dec9 dart2js cps: Add logical rewriter rules to favor null-aware operators.
These useful patterns arise with null-aware operators:

x ? y : x  ==>  x && y
x ? x : y  ==>  x || y

BUG=
R=kmillikin@google.com

Review URL: https://codereview.chromium.org//1291073002 .
2015-08-14 12:07:39 +02:00
Asger Feldthaus c659bda53b dart2js cps: Bugfixes in .push rewrites.
Two consecutive pushes would sometimes be merged in a way that one of
the arguments could fall out of scope.

List.addAll with a literal list as argument would sometimes be rewritten
to a push, even though the list could be modified before the use.

BUG=
R=kmillikin@google.com

Review URL: https://codereview.chromium.org//1286123005 .
2015-08-14 12:07:11 +02:00
Sigmund Cherem e3fbf44643 dart2js: add function coverage tracking in dart2js output, dumpinfo, and
coverage recording server

R=sra@google.com

Review URL: https://codereview.chromium.org//1288593002 .
2015-08-13 16:47:58 -07:00
Harry Terkelsen 43e6b8b8db dart2js: remove trailing 0 byte when reading .packages
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org//1290643007.
2015-08-13 10:11:58 -07:00
Asger Feldthaus 0210c5c035 dart2js cps: Fix treatment of captured type variables.
CLOSES=24064
BUG=
R=kmillikin@google.com

Review URL: https://codereview.chromium.org//1286113003.
2015-08-13 13:35:50 +02:00