Commit Graph

4835 Commits

Author SHA1 Message Date
asgerf@google.com 61863051e6 cps-ir: Merge variables based on the source variable's name.
Previously we would merge based on the element, but that is a poor
strategy when multiple locals have the same name. E.g:

  for (int i = 0; i < X; ++i) {...}
  for (int i = 0; i < Y; ++i) {...}

The two `i` variables should obviously be merged, but they have
different elements.

BUG=
R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45134 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-14 12:14:03 +00:00
zarah@google.com f09447ebef dartj2s: add constructor helpers for map literals with no type parameters.
R=herhut@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45133 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-14 11:28:28 +00:00
asgerf@google.com cddd5120a8 Assignment expressions in tree IR.
Assignments are propagated into their first use, e.g:

var x = foo(),
    y = bar();
baz(x, y, y)

Becomes:

var y;
baz(foo(), y = bar(), y);

By itself, this usually degrades readability and is only a modest
improvement in code size (but it never degrades code size).
The main advantage is when it unlocks other optimizations such as
inlining of `x` in the above example.

The ability to rewrite ugly while(true) loops is one of the main wins
for this, but there are currently other things also blocking that, which
I will take in another CL.

Setters are also propagated to their use site, mostly to assist
introduction of compound operators in the future.

I'm considering if some of this should be enabled only when minifying
due to the unreadable output, but for now it's always on.

OVERVIEW OF CHANGES:
- Assign and SetField are now Expressions.

- VariableDeclaration is a new Dart-specific statement for declaring
  captured variables inside loops
  (previously handled by the `Assign.isDeclaration` field).

- StatementRewriter now propagates assignments into variable uses,
  regardless of use count.
  The assignment is then converted to a variable use if there are no
  more uses of the variable. E.g:

    { x = foo(); bar(x); } ==> bar(x = foo()) ==> bar(foo())

- Combining statements and expressions now works a bit differently
  so we can inline combined assignments into an inlined combined break
  without risking reprocessing.

- New phase PullIntoInitializers moves assignment expressions back
  into statements so they can be part of the variable initializer.
  The StatementRewriter cannot be predict ahead of time whether
  an assignment propagation is beneficial, so this phase cleans up
  some bad propagations.

R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45132 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-14 11:16:27 +00:00
asgerf@google.com 7b9cc238b1 cps-ir: Handle factories and redirecting constructors with JS backend.
BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45128 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-14 08:25:26 +00:00
asgerf@google.com 677c9fad1c cps-ir: Register IndexSet calls like other calls in JS codegen.
BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45126 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-14 08:22:17 +00:00
sigmund@google.com 968fcdc8c7 Make invalid to override method names for local nested functions
BUG= http://dartbug.com/19129
R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45123 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-13 23:49:55 +00:00
sra@google.com a64c72bc77 Make HForeignCode 'isAllocation' property available to optimization
The main difference seen is slightly better codegen around a few box allocations due to store-forwarding across calls because the allocation is now known to be unaliased.

R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45118 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-13 19:29:23 +00:00
sigmund@google.com b2c067a754 Report compile-time error if using this implicitly in initializers
BUG= http://dartbug.com/21210
R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45114 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-13 17:56:32 +00:00
sra@google.com 9385aa2acd Use native behavior for dead code elimination
- Unused pure instructions are removed
- noSuchMethod-on-null-guards

R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45110 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-13 16:30:02 +00:00
floitsch@google.com 55dc5bcf42 Revert "dart2js: use Es6 maps when available."
This reverts commit r45105.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45107 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-13 15:24:34 +00:00
sigurdm@google.com 9be87a1899 Revert "Dart2js deferred loading. Follow types of functions when calculating dependencies."
This reverts commit r45101.

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45106 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-13 14:42:02 +00:00
floitsch@google.com dbc6ae91ab dart2js: use Es6 maps when available.
R=herhut@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45105 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-13 14:27:25 +00:00
asgerf@google.com 1e264887c4 cps-ir: Don't bail on assert in unchecked mode.
BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45103 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-13 14:05:55 +00:00
sigurdm@google.com 0d3ef8dcd7 Dart2js deferred loading. Follow types of functions when calculating dependencies.
This fixes part of dartbug.com/22995

Turns out that synthesized constructors not always have a type.

BUG=
R=johnniwinther@google.com

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45101 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-13 13:53:13 +00:00
johnniwinther@google.com 03eb025f29 Copy OldResolver dispatch logic to SendVisitor and remove OldResolver.
BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45099 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-13 13:11:17 +00:00
johnniwinther@google.com e06f96ae3a Revert "Handle SendSet and NewExpression through NewResolvedVisitor."
This reverts commit r45091.

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45093 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-13 10:42:28 +00:00
johnniwinther@google.com 9557f010a4 Handle SendSet and NewExpression through NewResolvedVisitor.
This allows for the handling assignment and new expression through the SemanticSendVisitor methods in SsaBuilder and InferrerVisitor(s).

BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45091 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-13 09:47:54 +00:00
sigurdm@google.com d0d07a565e Revert "Dart2js deferred loading. Follow types of functions when calculating dependencies."
This reverts r45086

BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45087 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-13 08:47:08 +00:00
sigurdm@google.com 715f16fc53 Dart2js deferred loading. Follow types of functions when calculating dependencies.
This fixes part of dartbug.com/22995

Turns out that synthesized constructors not always have a type.

BUG=
R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45086 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-13 07:56:35 +00:00
sra@google.com a3271de525 Add unary arithmetic (+#, -#) to ThrowBehaviorVisitor
R=floitsch@google.com
TBR=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45082 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-10 22:21:29 +00:00
sigmund@google.com de08c19261 Add --no-source-maps flag to dart2js executable
BUG= http://dartbug.com/21299
R=floitsch@google.com, johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45071 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-10 16:53:00 +00:00
sra@google.com 9b730d6447 Compute default throwing behavior from JavaScript.
This change removes the heuristic that 'general effects imply may-throw behavior', replacing it with explicit throwing behavior.

A new JavaScript AST visitor provides the default throwing behavior.

R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45070 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-10 16:00:02 +00:00
johnniwinther@google.com f92e76929f Add SemanticDeclVisitor.
BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45068 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-10 15:06:33 +00:00
johnniwinther@google.com 1596361d53 Handle local get through semantic visitor methods.
BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45066 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-10 14:17:23 +00:00
johnniwinther@google.com 16bfae7b27 Handle setter without getter for compounds in SemanticSendVisitor
+ fix status of dart2dart new_backend.

BUG=
R=asgerf@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45065 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-10 14:00:15 +00:00
floitsch@google.com ffeedc00bf dart2js: retain constants that are used as annotations in constructors and setters.
BUG= http://dartbug.com/23128
R=herhut@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45064 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-10 13:10:11 +00:00
zarah@google.com bc1f440a42 dart2js: Add newline in minified mode.
R=herhut@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45063 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-10 13:06:26 +00:00
zarah@google.com a604c0d3ed dart2js: create a 'types' table for each deferred unit.
This fixes part of dartbug.com/22995.

R=sigurdm@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45061 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-10 11:21:10 +00:00
herhut@google.com 3a94963aee Model 'await for' as an explicit node in tree and fix its handling.
BUG= http://dartbug.com/23119
R=floitsch@google.com, johnniwinther@google.com

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

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45059 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-10 10:24:57 +00:00
asgerf@google.com cd822fd188 Pull JS assignments into var initializer.
E.g.

var x;
x = new Foo();
x.bar();
return x;

Becomes:

var x = new Foo();
x.bar();
return x;

BUG=
R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45058 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-10 09:42:19 +00:00
herhut@google.com a1c9218994 Revert "Model 'await for' as an explicit node in tree and fix its handling."
This reverts revision r45053.

BUG=
TBR=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45057 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-10 09:35:29 +00:00
johnniwinther@google.com 9e95e04eb1 Fine-grain field, getter, setter, and function access in IrBuilder.
BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45055 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-10 08:41:00 +00:00
herhut@google.com 616f2b5038 Model 'await for' as an explicit node in tree and fix its handling.
BUG= http://dartbug.com/23119
R=floitsch@google.com, johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45053 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-10 08:17:01 +00:00
sra@google.com e360f87504 Fix order of parameters in intercepted generative constructor body.
When the receiver parameter is inserted at the front of the parameter list, some parameters may have already been inserted and others will be inserted later.
If none have already been inserted, then the subsequent parameters were being inserted in front of the receiver parameter. This is fixed by marking the receiver as the lastAddedParameter if it is the only one. This did not seem to affect 'this', presumably because the position of 'this' is immaterial since it is always removed from the JS function parameters.

R=sigmund@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45048 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-10 03:18:05 +00:00
sra@google.com 0e68d32045 Improve error handling of JS-calls
- Accept juxtaposed strings for JS behavior since that can now be large.
- Give proper errors rather than scary internal errors.

R=floitsch@google.com

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

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45022 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-09 18:20:14 +00:00
sra@google.com 9e760fde6e Improve error handling of JS-calls
- Accept juxtaposed strings for JS behavior since that can now be large.
- Give proper errors rather than scary internal errors.

R=floitsch@google.com

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45021 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-09 18:07:45 +00:00
sra@google.com 1293347d87 Improve error handling of JS-calls
- Accept juxtaposed strings for JS behavior since that can now be large.
- Give proper errors rather than scary internal errors.

R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45013 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-09 15:55:32 +00:00
kmillikin@google.com 34fc9fb911 Refactor the try statement analysis results.
In the dart2js CPS backend, move the frontend-specific try statement
analysis results out of the frontend-independent IrBuilder and into the
frontend-specific IrBuilderVisitor.

BUG=
R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45009 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-09 14:17:36 +00:00
floitsch@google.com 16b03eb41e Use range-arguments to avoid sublist-iterable and sublists.
BUG= http://dartbug.com/23142
R=lrn@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45008 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-09 13:59:20 +00:00
kmillikin@google.com 73938235ad Propagate bailout messages from the CPS IR backends.
If there is a bailout message, propagate it out.

BUG=
R=asgerf@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45007 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-09 13:34:10 +00:00
asgerf@google.com 08f7ee9410 Overhaul tree IR visitor and rename IR classes.
Changes in both IRs:
- ExecutableDefinition -> RootNode

- PassMixin has been removed and the Pass interface has been
  reduced to a single rewrite(RootNode) method.

- ConstructorDefinition no longer subclasses FunctionDefinition.

Changes in the cps IR:
- RunnableBody -> Body

Changes in tree IR:
- RootNodes have "forEachBody" and "replaceEachBody" helper methods that
  take care of the boilerplate for traversing roots and initializers.

- We now have visitors for initializers and root nodes. The RecursiveVisitor still
  just visits statements and expressions since forEachBody takes care of the root
  nodes and initializers.

- Initializers are no longer expressions. Why were they expressions?

- We now have a RecursiveTransformer class which behaves like RecursiveVisitor,
  except visitors are expected to return a transformed node.
  This removes a lot of boilerplate traversal from transformations.

R=kmillikin@google.com

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

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45006 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-09 13:18:53 +00:00
asgerf@google.com 115cbb06fc Overhaul tree IR visitor and rename IR classes.
Changes in both IRs:
- ExecutableDefinition -> RootNode

- PassMixin has been removed and the Pass interface has been
  reduced to a single rewrite(RootNode) method.

- ConstructorDefinition no longer subclasses FunctionDefinition.

Changes in the cps IR:
- RunnableBody -> Body

Changes in tree IR:
- RootNodes have "forEachBody" and "replaceEachBody" helper methods that
  take care of the boilerplate for traversing roots and initializers.

- We now have visitors for initializers and root nodes. The RecursiveVisitor still
  just visits statements and expressions since forEachBody takes care of the root
  nodes and initializers.

- Initializers are no longer expressions. Why were they expressions?

- We now have a RecursiveTransformer class which behaves like RecursiveVisitor,
  except visitors are expected to return a transformed node.
  This removes a lot of boilerplate traversal from transformations.

R=kmillikin@google.com

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45004 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-09 13:00:56 +00:00
asgerf@google.com 28facdb760 Overhaul tree IR visitor and rename IR classes.
Changes in both IRs:
- ExecutableDefinition -> RootNode

- PassMixin has been removed and the Pass interface has been
  reduced to a single rewrite(RootNode) method.

- ConstructorDefinition no longer subclasses FunctionDefinition.

Changes in the cps IR:
- RunnableBody -> Body

Changes in tree IR:
- RootNodes have "forEachBody" and "replaceEachBody" helper methods that
  take care of the boilerplate for traversing roots and initializers.

- We now have visitors for initializers and root nodes. The RecursiveVisitor still
  just visits statements and expressions since forEachBody takes care of the root
  nodes and initializers.

- Initializers are no longer expressions. Why were they expressions?

- We now have a RecursiveTransformer class which behaves like RecursiveVisitor,
  except visitors are expected to return a transformed node.
  This removes a lot of boilerplate traversal from transformations.

R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45000 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-09 12:04:45 +00:00
johnniwinther@google.com 796c130cdc Extract CallStructure from Selector.
This should be used for static invocation so that Selector is only for dynamic invocations.

BUG=
R=floitsch@google.com

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

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44991 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-09 07:44:17 +00:00
kmillikin@google.com 8ee2280e9b Change the collection of continuation jumps.
Encapsulate the responsibility for emitting jumps and building continuation
environments in the JumpCollector class.  JumpCollectors are now used for
continuations that are not break or continue targets in the source
program (e.g., some of the loop continuations) for uniformity.

BUG=
R=asgerf@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44964 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-08 12:49:26 +00:00
asgerf@google.com c1a29cfc2f cps-ir: Merge variables based on set-based liveness and graph coloring.
RegisterAllocator and CopyPropagator have been removed.

Variables are merged after StatementRewriter.

This simplifies CPS->Tree translation is a little bit since the mapping
to variables is one-to-one.

The StatementRewriter has a more SSA-like input, but has to be more
aggressive when looking for a redex. It now looks through a chain of
phi-assignments to check if two statements can be combined, whereas
before it would only combine two identical jumps.

I haven't been able to measure a significant slowdown, though I'm sure
it is at least a little bit slower.

R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44962 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-08 10:59:22 +00:00
johnniwinther@google.com 2d39371869 Revert "Extract CallStructure from Selector."
This reverts commit r44960.

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44961 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-08 10:38:28 +00:00
johnniwinther@google.com 296d174559 Extract CallStructure from Selector.
This should be used for static invocation so that Selector is only for dynamic invocations.

BUG=
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44960 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-08 09:30:50 +00:00
johnniwinther@google.com 1844b7e4ae Fix bug in native/behavior.dart
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44959 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-08 08:47:57 +00:00
johnniwinther@google.com 1098ce385c Handle unexpected tokens in modifier lists.
BUG=http://dartbug.com/23051
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44958 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-08 08:11:12 +00:00