Commit Graph

4698 Commits

Author SHA1 Message Date
zarah@google.com 9760e1ad33 dart2js: remove first argument from lazy function.
R=herhut@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44660 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-24 11:31:23 +00:00
johnniwinther@google.com fd41ebe4f6 Implement new flatten specification.
BUG=http://dartbug.com/22921
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44659 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-24 11:28:30 +00:00
herhut@google.com 63b52a596b Remove setFixedBackendName method from Element.
BUG=
TBR=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44657 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-24 10:41:09 +00:00
herhut@google.com 361e855200 Do not use the namer for naming closure elements.
BUG=
R=floitsch@google.com

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

Revetered: https://code.google.com/p/dart/source/detail?r=44596

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44656 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-24 09:40:00 +00:00
het@google.com c3c4586a56 Don't bailout of type inference for simple NSM implementations
BUG=
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44651 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-24 00:10:54 +00:00
johnniwinther@google.com 94d30c2f27 Refactor IrBuilder to use SemanticVisitor.
BUG=
R=floitsch@google.com, karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44628 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-23 08:03:27 +00:00
het@google.com c90a6adc65 Don't generate invocation mirror code if all noSuchMethods forward to
Object.noSuchMethod

BUG=
R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44606 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-20 18:19:01 +00:00
herhut@google.com 3f6cc0127f Split HForeign into HForeignCode and abstract base class.
BUG=
R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44602 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-20 13:00:46 +00:00
asgerf@google.com 4ff35364bd cps-ir: Do not propagate assignments into try.
BUG=
R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44600 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-20 10:14:47 +00:00
sra@google.com 847bd37ce0 Redo "Use an explicit 'this' parameter instead of 'This' nodes."
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44599 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-20 10:10:58 +00:00
herhut@google.com d4b8a98034 Revert "Do not use the namer for naming closure elements."
This reverts revision 44594.

BUG=
TBR=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44596 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-20 09:10:24 +00:00
johnniwinther@google.com fe9cf5a1bf Update SemanticVisitor with visitIndex, visitSuperIndex
... and add mixins in preparation for IrBuilder implementation based in SemanticVisitor.

BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44595 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-20 08:51:58 +00:00
herhut@google.com d6779d36a6 Do not use the namer for naming closure elements.
BUG=
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44594 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-20 08:41:40 +00:00
sra@google.com 77e8e513fc Revert "Use an explicit 'this' parameter instead of 'This' nodes."
Review URL: https://codereview.chromium.org//1018403002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44581 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-19 18:01:02 +00:00
sra@google.com a553590de4 Use an explicit 'this' parameter instead of 'This' nodes.
An explicit parameter makes it possible to visit all uses of 'this', for example, to change to a calling convention where the receiver is passed as an explicit argument.

R=asgerf@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44578 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-19 17:09:20 +00:00
het@google.com 302048ecca Revert "Don't generate forwarding hooks if all noSuchMethod implementations"
This reverts commit r44575.

BUG=
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44576 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-19 16:44:37 +00:00
het@google.com cfb96163dc Don't generate forwarding hooks if all noSuchMethod implementations
forward to Object.noSuchMethod

BUG=
R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44575 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-19 16:01:23 +00:00
herhut@google.com 34b6869777 Abort tracing in type inference in the presence of await.
BUG= http://dartbug.com/22868 http://dartbug.com/22895
R=floitsch@google.com

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

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44573 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-19 13:21:29 +00:00
karlklose@google.com f0efba07a2 Add a helper to add a LetPrim node for a new primitive node.
R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44571 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-19 12:07:00 +00:00
sigurdm@google.com 25e11e6b29 Fix renaming of exception variables on left-hand-sides.
Also fix compound assignments.

BUG=
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44558 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-18 14:04:41 +00:00
herhut@google.com 4f5a80b4de Revert "Abort tracing in type inference in the presence of await."
This reverts revision 44555.

BUG=
R=karlklose@google.com
TBR=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44556 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-18 12:10:30 +00:00
herhut@google.com c9b6f9a8c2 Abort tracing in type inference in the presence of await.
BUG= http://dartbug.com/22868
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44555 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-18 10:35:55 +00:00
zarah@google.com 941cc60606 dart2js: remove obsolete code in the old emitter.
R=herhut@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44552 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-18 10:14:05 +00:00
sigurdm@google.com 3f8c12c425 Fix problems with async* and await for in dart2js.
The ssa backend would generate incorrect code for await for.

Async* finalizers would not be run when a paused stream is canceled.

BUG=
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44503 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-16 14:10:29 +00:00
johnniwinther@google.com ce07c4f19e Pass the call selector for local invocations.
BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44502 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-16 14:06:22 +00:00
kmillikin@google.com 056c76548b dart2js: Split the SimplifyInterceptors pass out from the list of optimization passes.
The backend code generator assumes that SimplifyInterceptors is alwyas
run, otherwise it will crash.  Split it out from the list of
optimizations to make it more clear that it should not be disabled.

BUG=
R=sra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44501 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-16 10:11:09 +00:00
sigurdm@google.com ac29738460 Fix "continue to a label" in dart2js async code.
Actually there were two independent problems

1: continue would jump to the starting point of the label, instead of
the continue-point of the labelled loop.

2: A for-initializer with no awaits in the for would still get its
variables hoisted, so

    label: for(var i = 1; i < 10; i++) {continue label};

would transform to:

    label: {
      i = 1
      for(; i < 10; i++) {continue label;}
    }

And that fails.

BUG=
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44499 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-16 08:45:47 +00:00
herhut@google.com 36175534cb Add call to deferred action method in csp constructors.
BUG=
TBR=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44464 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-13 15:48:46 +00:00
herhut@google.com 4832c0478b Do not use namer for top-level global.
BUG=
TBR=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44463 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-13 14:33:03 +00:00
herhut@google.com 1cf889e24d Disable the use of __proto__ in incremental mode.
BUG=
TBR=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44460 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-13 13:07:24 +00:00
herhut@google.com 58efcbe0bb Defer addStubs to class instantiation time.
BUG=
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44458 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-13 12:35:30 +00:00
sigurdm@google.com 5bf38f9c59 Fix handling of lazy and and or in async functions.
The two were interchanged.

BUG=
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44456 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-13 12:11:21 +00:00
herhut@google.com bcca8dde85 Make use of __proto__ when available.
BUG=
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44454 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-13 10:21:52 +00:00
floitsch@google.com fea7ca3d16 dart2js: fix csp mode when minifying.
R=ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44453 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-13 10:01:58 +00:00
floitsch@google.com 5ae2c0f6e9 dart2js: Emit libraries that are only used for typedefs.
R=zarah@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44452 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-13 09:55:32 +00:00
kmillikin@google.com 695aa5b57e dart2js: Add support for do/while loops to the CPS backend.
Do/while loops are simpler than for loops, but more complicated than while
loops.  Add support for them to the CPS translation.

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44450 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-13 09:33:17 +00:00
sigurdm@google.com d95886b484 Make sure to bind a method to its receiver if it is stored in a temporary.
Otherwise `this` is not bound when the temprary is invoked.

BUG=
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44449 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-13 08:21:48 +00:00
floitsch@google.com 3b8843b175 dart2js: Handle zero-terminated content explicitly.
BUG= http://dartbug.com/22667
R=ajohnsen@google.com, johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44427 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-12 12:33:00 +00:00
brianwilkerson@google.com 0a35aec78f Fix type promotion (issue 22732)
R=paulberry@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44410 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-11 18:01:25 +00:00
herhut@google.com 5976f93275 Support @NoInline for constructor bodies.
BUG=
R=floitsch@google.com, johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44402 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-11 14:15:07 +00:00
herhut@google.com 9a72b99fce Ensure that descriptors have a prototype.
BUG= http://dartbug.com/22776
R=floitsch@google.com, karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44401 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-11 13:39:10 +00:00
johnniwinther@google.com da20a0abd7 Flag that --dump-info is not supported for dart2dart.
BUG=http://dartbug.com/22724
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44400 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-11 13:12:42 +00:00
kmillikin@google.com 18968fd26e Support static getters and setters in the new dart2js code generator.
Implicit getters and setters are translated as field accesses, real getters
and setters are translated as static function invocations.

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44399 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-11 12:06:18 +00:00
johnniwinther@google.com d2cdaf06a7 Add SemanticVisitor to dart2js.
BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44393 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-11 09:24:10 +00:00
herhut@google.com 0f95c2df6b Use no arguments when simulating implicit call to super constructor during type inference.
BUG= http://dartbug.com/22723
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44380 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-10 17:33:28 +00:00
sigurdm@google.com 69984cd0f8 Fix dart2js for switches in async code with only awaits in the key.
BUG=
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44371 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-10 14:25:00 +00:00
zarah@google.com d62e45b914 dart2js: remove name string of function type encoding in metadata.
R=herhut@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44365 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-10 11:41:12 +00:00
herhut@google.com 94e1fa8186 Adapt call to addStubs in incremental compilation to new signature.
BUG=
TBR=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44363 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-10 10:13:15 +00:00
zarah@google.com d708313b0f dart2js: replace null in arrays with array holes in type representations.
R=herhut@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44361 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-10 09:22:33 +00:00
paulberry@google.com 50f820a13a Temporary workaround for bug 22732.
Analyzer is failing to implement type promotion properly, causing it
to incorrectly flag "current.thenBlock" and "current.elseBlock" with a
warning.

As a temporary workaround, declare a variable with the correct type.

TBR=sra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44333 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-09 18:09:29 +00:00