Commit graph

11573 commits

Author SHA1 Message Date
sra@google.com
6ab9b2ceb2 Optimize DateTime properties
Several small pieces fit together to improve calendar arithmetic code in a customer's app.

1. Mark DateTime primitives that return small integers as returning uint31.

2. uint31 + uint31 -> uint32 in type inference.

3. uint32 / N can be generated as (uint32 / N) | 0 when N >= 2.

R=floitsch@google.com

Committed: https://code.google.com/p/dart/source/detail?r=45621

Review URL: https://codereview.chromium.org//1106443003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45625 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 00:52:29 +00:00
sra@google.com
532a7948d8 Optimize DateTime properties
Several small pieces fit together to improve calendar arithmetic code in a customer's app.

1. Mark DateTime primitives that return small integers as returning uint31.

2. uint31 + uint31 -> uint32 in type inference.

3. uint32 / N can be generated as (uint32 / N) | 0 when N >= 2.

R=floitsch@google.com

Review URL: https://codereview.chromium.org//1106443003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45621 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-07 21:39:17 +00:00
sigmund@google.com
d0002db5ed Avoid reparsing metadata expressions
BUG= http://dartbug.com/23404
R=floitsch@google.com

Review URL: https://codereview.chromium.org//1126423002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45600 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-07 17:07:04 +00:00
johnniwinther@google.com
f238761664 Improve resolution/codegen separation invariant.
BUG=
R=asgerf@google.com

Review URL: https://codereview.chromium.org//1126163002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45593 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-07 13:30:05 +00:00
johnniwinther@google.com
065b2163e3 Differentiate between unresolved class and constructor.
BUG=
R=asgerf@google.com

Review URL: https://codereview.chromium.org//1130773002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45591 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-07 13:02:49 +00:00
ricow@google.com
e92f697236 Remove dart2dart support from testing scripts and status files
I will leave it to the dart2js people to remove the support from the dart2js tools (there is also a bunch of comments still in code, do a git grep)

R=kustermann@google.com, floitsch@google.com, kmillikin@google.com
BUG=

Review URL: https://codereview.chromium.org//1126363003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45588 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-07 11:29:55 +00:00
het@google.com
acfd54f53a Report malformed URIs in library dependencies as errors.
For instance: "import '../../Udyn[mic ils/expect.dart';" used to cause an internal compiler error. The error is now caught and the compiler reports the invalid import.

BUG=http://dartbug.com/23228
R=floitsch@google.com

Review URL: https://codereview.chromium.org//1131593006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45580 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-07 00:11:47 +00:00
sra@google.com
ac0f1ade9e Recognize unmodifiable lists
Add a new type, JSUnmodifiableArray, that is the type returned by
List.unmodifiable and the type of const list literals.

R=floitsch@google.com

Review URL: https://codereview.chromium.org//1126063002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45575 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-06 21:25:25 +00:00
herhut@google.com
d63b7df4aa dart2js: Update status of deferred_inheritance_constraints test, again.
BUG=
TBR=sigurdm@google.com

Review URL: https://codereview.chromium.org//1128063002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45562 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-06 11:40:54 +00:00
herhut@google.com
aab9414511 dart2js: Update status of deferred_inheritance_constraints test.
BUG=
TBR=sigurdm@google.com

Review URL: https://codereview.chromium.org//1128843002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45561 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-06 11:00:42 +00:00
herhut@google.com
3fd132b658 Add test for calling an empty function from unloaded deferred library.
BUG=
R=sigurdm@google.com

Review URL: https://codereview.chromium.org//1127043003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45560 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-06 10:28:55 +00:00
lrn@google.com
92c526b2a2 Make EfficientLength public, as EfficientLengthIterable.
R=iposva@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org//1104063002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45556 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-06 09:00:45 +00:00
herhut@google.com
a79c250c13 dart2js: Inline across deferred output units if that leads to reduced size.
BUG=
R=floitsch@google.com

Review URL: https://codereview.chromium.org//1117223002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45553 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-06 08:37:54 +00:00
lrn@google.com
7fe3363524 Fix SplayTreeMap.from ignoring the compare and isValidKey arguments.
BUG= http://dartbug.com/23387
R=wibling@google.com

Review URL: https://codereview.chromium.org//1127043002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45550 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-06 08:18:56 +00:00
johnmccutchan@google.com
a25e355731 Add hasStoppedAtBreakpoint
BUG=
R=turnidge@google.com

Review URL: https://codereview.chromium.org//1128583002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45532 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-05 17:30:19 +00:00
sigurdm@google.com
f218f0797f Remove non-existing tests from co19-dart2js.status.
These lines are not referring to existing tests

BUG=
R=karlklose@google.com

Review URL: https://codereview.chromium.org//1116133002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45523 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-05 11:02:36 +00:00
paulberry@google.com
964bb448cc Fix status file after r45489.
TBR=scheglov@google.com

Review URL: https://codereview.chromium.org//1121283002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45498 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-04 18:07:06 +00:00
paulberry@google.com
7138d01444 In constant evaluation, handle final vars initialized at declaration site.
Previously final variables initialized at the declaration site
would simply be ignored, causing some checked-mode compile time
errors to be missed, and causing the analyzer to produce
incorrect values for any such constants.

BUG=dartbug.com/23292
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org//1099953004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45494 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-04 16:21:54 +00:00
johnniwinther@google.com
af1b401714 Handle default values on constant redirecting factories.
BUG=
R=sigurdm@google.com

Review URL: https://codereview.chromium.org//1118423003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45490 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-04 13:39:14 +00:00
paulberry@google.com
34d8b562be Make sure to visit function annotations in ElementBuilder.
Since r44861, ElementBuilder is responsible for creating the
ConstantInstanceCreationHandle objects associated with
InstanceCreationExpressions.  Since InstanceCreationExpressions may
appear inside annotations, we must make sure the ElementBuilder visits
all annotations.  Previous to this change, it didn't visit function
annotations.

BUG=dartbug.com/23354
R=scheglov@google.com

Review URL: https://codereview.chromium.org//1125613003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45489 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-04 13:25:08 +00:00
asgerf@google.com
5a2bb3b761 cps-ir: Remove redundant identical() calls in type propagation.
Also, use the inferred type from dynamic method calls.

Changed the file from a "part of" to a re-exported file
so the imports are not polluting the other optimization passes.

R=kmillikin@google.com

Review URL: https://codereview.chromium.org//1086323002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45488 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-04 12:14:17 +00:00
asgerf@google.com
5522990c4f tree-ir: Move labeled statements outside loops.
BUG=
R=kmillikin@google.com

Review URL: https://codereview.chromium.org//1094433003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45486 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-04 11:26:23 +00:00
karlklose@google.com
6abb79a95b cps-ir: Implement type tests for interface types without type arguments.
R=sigurdm@google.com, kmillikin@google.com

Review URL: https://codereview.chromium.org//1110813005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45484 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-04 07:58:38 +00:00
sigurdm@google.com
1e723f68d1 Allow use of deferred type-literals in non-constant contexts.
BUG= dartbug.com/22893
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//1109393012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45459 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-30 11:38:54 +00:00
karlklose@google.com
dd7d140bc3 Adjust test expectations for dart2js-cps-ir.
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//1116863002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45457 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-30 09:48:09 +00:00
johnniwinther@google.com
d9b0cc7da2 Refactor SsaBuilder.visitStaticSend and visitGetterSend.
BUG=
R=karlklose@google.com

Review URL: https://codereview.chromium.org//1112563002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45449 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-29 11:44:05 +00:00
karlklose@google.com
f59e077911 Update dart2js-cps_ir test expectations for new tests committed in r45444.
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//1117543004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45448 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-29 07:27:39 +00:00
rmacnak@google.com
fd8e2db578 Fix status for Dartium (can't distinguish compile-time errors).
Review URL: https://codereview.chromium.org//1112783002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45446 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-29 03:52:25 +00:00
rmacnak@google.com
a6e42c48b5 Deal with deferred loading in the VM mirrors.
- Invalidate MirrorSystem.libraries when a load completes.
- Recheck if a deferred import's target has been loaded before failing.
- Allow loading libraries from a LibraryDepedencyMirror.
- Propogate compile-time error when attempting to reflect a deferred type.

BUG=http://dartbug.com/22592
R=asiva@google.com, gbracha@google.com

Review URL: https://codereview.chromium.org//1095903002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45444 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-28 23:47:45 +00:00
johnniwinther@google.com
e464269f96 Refactor SsaBuilder.visitSuperSend.
BUG=
R=karlklose@google.com

Review URL: https://codereview.chromium.org//1108783003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45439 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-28 08:23:58 +00:00
kmillikin@google.com
f44f9c78ac Support rethrow in the dart2js JS backend.
The approach is simple: translate rethrow to a throw of the enclosing
catch block's JS exception.  There is already an assert that the JS
backend does not see rethrow at code generation time.

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

Review URL: https://codereview.chromium.org//1094453006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45397 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-24 11:23:09 +00:00
asiva@google.com
49d1dc7252 Address issue 13719, cleanup the status file to reflect reality.
R=regis@google.com

Review URL: https://codereview.chromium.org//1085363005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45383 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-23 20:42:28 +00:00
karlklose@google.com
adcdabdfd9 Update test expectations for native tests on dart2js-cps_ir.
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//1093893003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45373 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-23 10:32:36 +00:00
karlklose@google.com
e8fa15c30a Update dart2js-cps_ir test expectations.
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//1091143003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45371 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-23 08:40:49 +00:00
regis@google.com
f40270798e Add reference to existing issue in status file.
This test has to be skipped on dartium because the VMOptions line is ignored.

Review URL: https://codereview.chromium.org//1098343003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45366 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-22 20:58:52 +00:00
alanknight@google.com
25c6f198f5 "Reverting 45351"
BUG=

Review URL: https://codereview.chromium.org//1097053006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45353 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-22 17:51:58 +00:00
alanknight@google.com
7431beaec2 appendHtml and insertAdjacentHtml should be consistently sanitized
BUG=
R=terry@google.com

Review URL: https://codereview.chromium.org//1081973003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45351 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-22 17:16:01 +00:00
johnniwinther@google.com
19c838f3eb Fix dart2dart new backend status.
BUG=
R=karlklose@google.com

Review URL: https://codereview.chromium.org//1083093005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45346 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-22 13:20:48 +00:00
johnniwinther@google.com
3fbdff8783 Add structural equality to ConstantExpression.
BUG=
R=karlklose@google.com

Review URL: https://codereview.chromium.org//1050133006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45344 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-22 13:03:57 +00:00
kmillikin@google.com
ed699ec05d Mark a dart2js test that fails in --use-cps-ir mode.
R=karlklose@google.com
BUG=

Review URL: https://codereview.chromium.org//1085913004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45337 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-22 11:08:39 +00:00
kmillikin@google.com
4f7c1d3d54 Clean up handling of constants in the CPS backend.
Before: constant-valued expressions were usually compiled by the JS constant
compiler task, which surprisingly produces a Dart (not JS) constant.

After: use the already computed constant value of a constant-valued
expression.  This is looked up in one of two ways depending on whether the
expression is an identifier or not.  For primitive constants (Booleans,
doubles, integers, strings, and null) simply construct them as they have not
had a value computed.

Also, fix a variety of small bugs.  In some case the fix is disabling an
incorrect code path and bailing out of the compiler.

BUG=
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//1057483004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45335 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-22 10:59:03 +00:00
lrn@google.com
f139d0e93b Add List.unmodifiable constructor.
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//1056353004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45334 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-22 10:48:22 +00:00
floitsch@google.com
6594a922d5 Mark dart2js/exit_code_test as slow.
R=ricow@google.com

Review URL: https://codereview.chromium.org//1090273007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45330 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-22 10:09:29 +00:00
karlklose@google.com
9e154bc62a Allow access to type variables as expressions in factory constructors.
BUG= http://dartbug.com/22700
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//1100073002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45328 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-22 09:11:14 +00:00
sigmund@google.com
3b57a3d8b7 Fix test in try affected by refactor
TBR=johnniwinther@google.com

Review URL: https://codereview.chromium.org//1079523004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45317 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-21 17:40:46 +00:00
hausner@google.com
21ca62f8bc Properly resolve top-level setters
Fixes issue 4386.

When converting a getter to a setter (converting a right-hand
side expression to a left-hand side, assignable entity),
we need to know where to look for the setter function.
Top-level setters need to be resolved in the library or prefix
scope in which the getter was found.

R=regis@google.com

Review URL: https://codereview.chromium.org//1090373006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45316 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-21 17:36:34 +00:00
sigmund@google.com
667173800b Visit arguments of invalid TypeLiteralSends during inference
BUG= http://dartbug.com/23264
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//1081873005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45315 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-21 15:36:22 +00:00
sgjesse@google.com
170be8d7d1 Process outstanding events before making a new HTTP client request
This re-applies r45127, which was reverted in r45129. The revert was due
to a failing test which is re-written here to perform the separate steps
in a deterministic order.

Original change description:

This fixes the issue of using a HTTP client connection from the
connection pool which was closed and where the close indication has
already been received by the event handler.

This specifically fixes the 'pub get' issue where a long running
constraint resolver would end with the error "Connection closed before
full header was received"

Retrying GET methods when the connection is closed after succesfuly
sending (parts of) the request is still missing.

R=lrn@google.com

BUG=http://dartbug.com/21798

Review URL: https://codereview.chromium.org//1055943004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45313 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-21 12:14:55 +00:00
johnniwinther@google.com
af8a0dcdca Add SourceInformationFactory.
BUG=
R=floitsch@google.com

Review URL: https://codereview.chromium.org//1100723002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45312 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-21 12:07:51 +00:00
sra@google.com
f1ab388015 Rewrite for-in loop on JavaScript indexable arrays as indexing loop
for (E variable in a) <body>

is generated as:

  _end = a.length;
  for (_i = 0; _i < a.length; a.length == _end || (0, H.throwConcurrentModificatiionError)(a), ++_i) {
    variable = a[_i];
    <body>;
  }

or, when the list is known to be fixed length:

  for (_i = 0; _i < a.length; ++_i) {
    variable = a[_i];
    <body>;
  }

R=floitsch@google.com

Committed: https://code.google.com/p/dart/source/detail?r=45270

Reverted: https://code.google.com/p/dart/source/detail?r=45271

Review URL: https://codereview.chromium.org//1087973002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45309 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-21 03:13:36 +00:00