Commit Graph

21 Commits

Author SHA1 Message Date
kasperl@google.com 34ec097692 Get rid of the name in HInvokeDynamic (just use the selector instead).
This fixes issue 2620.

R=ngeoffray@google.com,karlklose@google.com
BUG=http://dartbug.com/2620

Review URL: https://chromiumcodereview.appspot.com//10836339

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11030 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 10:56:02 +00:00
sgjesse@google.com 97d17d8276 Fix warning
R=ahe@google.com

BUG=dart:4601
TEST=none

Review URL: https://chromiumcodereview.appspot.com//10832388

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10949 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-20 12:45:32 +00:00
ajohnsen@google.com 3109b142a3 Fix a performance regressions introduced by r10632.
This gives the compiler the exact same behaviour as before.

BUG=

Review URL: https://chromiumcodereview.appspot.com//10827353

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10891 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-17 12:12:53 +00:00
kasperl@google.com 5534f6a8cb Stop keeping track of the which library use which private selectors.
R=ngeoffray@google.com
BUG=

Review URL: https://chromiumcodereview.appspot.com//10834387

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10889 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-17 12:09:38 +00:00
johnniwinther@google.com ac5a4808d8 Skeleton typedef type implementation
Review URL: https://chromiumcodereview.appspot.com//10832136

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10880 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-17 11:15:44 +00:00
sgjesse@google.com bf29fed27e Fix stupid mistake
TBR=ngeoffray

BUG=

Review URL: https://chromiumcodereview.appspot.com//10834388

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10877 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-17 10:42:48 +00:00
sgjesse@google.com 210cb22f51 Start inferring return types for static functions
Types propagated to the function exit are recorded in the code generator
and optimisticly used at call sites. If this optimistic assumption fails
the callers have to be recompiled.

R=kasperl, ngeoffray, floitsch

Review URL: https://chromiumcodereview.appspot.com//10823389

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10876 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-17 10:32:54 +00:00
regis@google.com d9b0276a4c Require two type arguments for map literals (issue 4522).
Spec has been changed back.
VM temporarily accepts a single type argument and emits a warning.
Update tests, dart2js source, dartdoc, etc...
Disable failing co19 tests (issue 175 filed).
Review URL: https://chromiumcodereview.appspot.com//10854191

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10861 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-16 20:44:32 +00:00
floitsch@google.com 1c89511be4 Move types out of the HInstructions.
Review URL: https://chromiumcodereview.appspot.com//10827180

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10823 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-16 14:25:00 +00:00
kasperl@google.com 3b87631a1c Make selector registration in the resolver and code generator more explicit.
Get rid of registerFieldClosureInvocations() in the enqueuer by explicit
registering the closure call selectors when we may be calling a getter in
the resolver and the code generator.

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

Review URL: https://chromiumcodereview.appspot.com//10854158

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10805 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-16 11:52:44 +00:00
sgjesse@google.com 90ef467e0e Track types for arguments passed to calls to static functions
This uses the same mechanism as is currently used for tracking the types of
arguments passed to non-static functions. The type collection has been
refactored to support both.

For static functions the type information for a function is invalidated if
the function is used for anything else than a direct call.

The test LibTest/core/int/operator_truncating_division_A01_t01 now has
the "problem" that the statement

  Expect.isTrue(actual is int);

never fails even though actual might not be an int in the generated JavaScript
even though the inferred type for actual is int.

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

Review URL: https://chromiumcodereview.appspot.com//10855170

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10726 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-15 13:52:06 +00:00
lrn@google.com 640e0ee99b Clean-up of getCompilationUnit.
Fixes a few places that assumes libraries can be compilation units.
- VoidElement now belongs to the entry compilation unit of the core library.
- Abstract fields now belong to the compilation unit of the creating accessor.

Review URL: https://chromiumcodereview.appspot.com//10834330

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10711 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-15 11:38:56 +00:00
floitsch@google.com cc40f8ec3f Make the closure-to-class translator more accessible. It can now be
used by the type-inference algorithm.

Review URL: https://chromiumcodereview.appspot.com//10855146

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10648 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-14 14:16:50 +00:00
kasperl@google.com e8268dd78a Add name and library to selectors.
This is the first step towards improving the Selector as an
abstraction used by the resolver, builder, and enqueur. The
intent is to have the resolver construct selectors that can
be used for method lookup, tree shaking, and for simplifying
the logic we use to build the correct SSA instructions for
sends (some of which are quite complex).

Next step is to get rid of more of the adhoc selector building
that's done outside of the resolver and clean up how we resolve
sends. After that, I'll start removing the need for passing
around both a name and a selector in a lot of places.

R=ahe@google.com,sgjesse@google.com
BUG=

Review URL: https://chromiumcodereview.appspot.com//10825337

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10637 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-14 12:21:51 +00:00
ajohnsen@google.com 404f888f83 Refactor Library/CompilationUnit and how we define local Scope.
This also collapses members and constructors of a class into the same
map.

BUG=

Original URL: https://chromiumcodereview.appspot.com//10832203

Review URL: https://chromiumcodereview.appspot.com//10830303

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10632 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-14 11:35:17 +00:00
sgjesse@google.com c888b57137 Fix type inference for self-recursive functions
If a self-recursive function calls itself with different argument
types that the ones currently expected the actual recompilation of the
function did not take place. This caused wrong JavaScript code to be
generated.

This change queues the generated JavaScript code to be invalidated to
after compiling the current function so that it itself can be
invalidated correctly.

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

BUG=dart:4492
TEST=tests/compiler/dart2js_extra/regress/4492_test.dart

Review URL: https://chromiumcodereview.appspot.com//10854140

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10622 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-14 08:54:02 +00:00
ajohnsen@google.com dd8585d5a2 Revert "Refactor Library/CompilationUnit and how we define local Scope."
This reverts commit 05718e680ca45ac26fcc0d0256fc98419fac1b2e.

BUG=

Review URL: https://chromiumcodereview.appspot.com//10824275

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10550 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-13 06:45:24 +00:00
ajohnsen@google.com ccc0ce3101 Refactor Library/CompilationUnit and how we define local Scope.
This also collapses members and constructors of a class into the same
map.

BUG=

Review URL: https://chromiumcodereview.appspot.com//10832203

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10549 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-13 06:22:24 +00:00
sgjesse@google.com 8995503241 Start moving the JavaScript backend related code into a separate library
R=ahe@google.com, floitsch@google.com

BUG=

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

Review URL: https://chromiumcodereview.appspot.com//10854066

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10482 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-10 08:49:27 +00:00
sgjesse@google.com 756de4bf83 Revert "Start moving the JavaScript backend related code into a separate library"
TBR=floitsch@google.com

BUG=

Review URL: https://chromiumcodereview.appspot.com//10854091

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10481 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-10 08:28:43 +00:00
sgjesse@google.com 783902b9be Start moving the JavaScript backend related code into a separate library
R=ahe@google.com, floitsch@google.com

BUG=

Review URL: https://chromiumcodereview.appspot.com//10854066

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10479 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-10 08:10:38 +00:00