kasperl@google.com
3f478e5a87
Fix issue 11398 by making sure we look at mixin applications
...
when trying to figure out if an element can be hit with a
typed selector.
R=ngeoffray@google.com
BUG=http://dartbug.com/11398
Review URL: https://codereview.chromium.org//17583007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24315 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 09:27:38 +00:00
johnniwinther@google.com
28acc13c57
Update status files.
...
BUG=
R=karlklose@google.com
Review URL: https://codereview.chromium.org//17573005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24313 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 09:09:07 +00:00
johnniwinther@google.com
2432ac4647
Support runtime check of function types.
...
New scheme for checking function subtyping:
1) Generate an $isX predicate on objects that are statically known subtypes of a given function type
2) Generate a signature encoding the whole function type on objects when a runtime check is needed.
A check succeeds if either 1) or 2) is true.
If too many predicates are needed a signature is generated instead, and if a signature is needed, no predicates are generated. Maximum number of predicates is currently determined by the magic constant MAX_FUNCTION_TYPE_PREDICATES in emitter.dart.
R=karlklose@google.com
Committed: https://code.google.com/p/dart/source/detail?r=24286
Review URL: https://codereview.chromium.org//12334070
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24309 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 06:58:55 +00:00
johnniwinther@google.com
90bf6203ee
Revert "Support runtime check of function types."
...
This reverts commit r24286.
BUG=
Review URL: https://codereview.chromium.org//17413013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24288 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 14:02:47 +00:00
johnniwinther@google.com
2ce76ed94a
Support runtime check of function types.
...
New scheme for checking function subtyping:
1) Generate an $isX predicate on objects that are statically known subtypes of a given function type
2) Generate a signature encoding the whole function type on objects when a runtime check is needed.
A check succeeds if either 1) or 2) is true.
If too many predicates are needed a signature is generated instead, and if a signature is needed, no predicates are generated. Maximum number of predicates is currently determined by the magic constant MAX_FUNCTION_TYPE_PREDICATES in emitter.dart.
R=karlklose@google.com
Review URL: https://codereview.chromium.org//12334070
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24286 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 13:35:56 +00:00
fschneider@google.com
48555c83ac
Back out r24266 to investigate dartium test failure.
...
TBR=kmillikin@google.com
Review URL: https://codereview.chromium.org//17074003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24284 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 11:56:32 +00:00
fschneider@google.com
ab1981b421
Optimizing noSuchMethod invocation with no arguments.
...
On each call that triggers a noSuchMethod invocation we
attach a custom dispatch function that allocates the
invocation object and invokes noSuchMethod. This dispatcher
is compiled and optimized like a normal Dart function.
Similar to method-extractors, these implicit dispatchers
do not show up as normal functions.
As a first step this CL only handles invocations of getters
and methods with no like o.foo or o.foo(). This CL gives
a >25x speedup of such noSuchMethod invocations. Calls with
multiple arguments still go through the slow path.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//17315008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24266 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 07:31:51 +00:00
ngeoffray@google.com
54e2031f1b
Fix a bug in how we deal HTypeConversion during type propagation: we can only convert to int if the input is int or null.
...
R=kasperl@google.com
Review URL: https://codereview.chromium.org//17003004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24230 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-20 14:10:52 +00:00
karlklose@google.com
28d5718b86
Add type arguments to constants.
...
R=ngeoffray@google.com
Review URL: https://codereview.chromium.org//16549004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24223 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-20 12:52:12 +00:00
karlklose@google.com
c026d59c27
Fix type variables in closures.
...
BUG=dartbug.com/11258
R=johnniwinther@google.com , ngeoffray@google.com
Review URL: https://codereview.chromium.org//17262003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24217 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-20 11:35:44 +00:00
kmillikin@google.com
632ac9f2c9
Fix a bug in graph construction for for loops.
...
A refactoring in SVN r24088 introduced a bug in for loops. Loops with
continue in the body and an empty update expression list will lose the
edge from the continue to the loop entry.
R=fschneider@google.com
BUG=11375
Review URL: https://codereview.chromium.org//17491003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24214 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-20 10:17:34 +00:00
regis@google.com
68041e2d0d
Fix more register allocation bugs in optimized code on ARM.
...
R=zra@google.com
Review URL: https://codereview.chromium.org//17176004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24191 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-19 16:21:27 +00:00
ngeoffray@google.com
b82ae7da0b
We have to create different locals when analyzing a closure. Otherwise the inferrer visitor might think an aborting body in a closure aborts the enclosing function.
...
R=karlklose@google.com
Review URL: https://codereview.chromium.org//16959009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24181 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-19 13:21:08 +00:00
jwren@google.com
7863ffc9d6
Implement new error code: StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT
...
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//17085003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24155 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-18 18:01:05 +00:00
zra@google.com
8240363b78
Enables co19 tests for SIMMIPS.
...
Also fixes a bug in division.
R=regis@google.com
Review URL: https://codereview.chromium.org//17312003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24147 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-18 15:51:27 +00:00
scheglov@google.com
36ace54ada
Convert isX() methods to isX getter.
...
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//17317002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24115 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-17 23:02:36 +00:00
jwren@google.com
695e4fe944
Fix status files for analyzer build
...
Review URL: https://codereview.chromium.org//17066006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24114 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-17 22:47:46 +00:00
scheglov@google.com
4d79a15ce3
New analyzer_experimental snapshot.
...
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//17249003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24109 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-17 21:04:45 +00:00
zra@google.com
4a99fabecb
Enables language tests for SIMMIPS.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//17131002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24098 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-17 15:58:31 +00:00
hausner@google.com
5fe5220636
Fix analyzer status
...
Review URL: https://codereview.chromium.org//17088006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24053 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-14 21:27:30 +00:00
hausner@google.com
457bb1bdcb
Remove support for + prefix in number literals
...
Also fix some tests that expected + prefix in hex numbers to be illegal. According to our documentation, int.parse() accepts + for numbers in all formats/radixes.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//17103002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24051 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-14 21:16:46 +00:00
srdjan@google.com
21ae6271e7
Last bits for making Maxc SIMARM pass tests.
...
R=zra@google.com
Review URL: https://codereview.chromium.org//16826010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24013 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-13 21:26:23 +00:00
fschneider@google.com
3208230580
Revert r23330 and r23136 because of a bug with loop invariant code motion.
...
This CL temporarily remove deoptimzation history which was put in to prevent
repeated deoptimization caused by loop invariant code motion. It caused
illegal code motion under certain conditions.
BUG=https://code.google.com/p/dart/issues/detail?id=11245
TEST=tests/language/licm3_test.dart
Review URL: https://codereview.chromium.org//16844011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23989 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-13 15:52:33 +00:00
fschneider@google.com
a43bddcbaf
Fix bug in constant propagation with double-equality.
...
Don't optimize x == x and x != x if x is a double:
x == x is not true, if x == NaN.
TEST=tests/language/arithmetic_test.dart
R=kmillikin@google.com
Review URL: https://codereview.chromium.org//16853005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23955 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-13 09:08:05 +00:00
srdjan@google.com
1affede0be
Fix broken Mac SIMARM by adapting the status files. We need to find a better way to handle this :-).
...
R=zra@google.com
Review URL: https://codereview.chromium.org//16871006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23947 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-13 00:36:12 +00:00
srdjan@google.com
5543ce104c
When canonicalize instances check if all fields are canonical. If a field is a non-canonical number or strings, canonicalize it. Otherwise report an error if a field is not canonical.
...
R=hausner@google.com
Review URL: https://codereview.chromium.org//16780009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23934 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-12 21:27:37 +00:00
jwren@google.com
5a106e3be7
Fix for 11154
...
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//16825002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23927 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-12 19:22:02 +00:00
regis@google.com
264d28744f
Fix decoding of object pool access in code patching on ARM.
...
Fix shift by zero and divide by one on ARM.
Update test status files.
R=zra@google.com
Review URL: https://codereview.chromium.org//16695007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23920 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-12 16:57:06 +00:00
hausner@google.com
0374dc9b12
Reified metadata in the VM
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//16780008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23912 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-12 15:44:57 +00:00
ngeoffray@google.com
ddf5372de2
Fix host-checked mode error in dart2js by removing bad assertion.
...
R=ahe@google.com
Review URL: https://codereview.chromium.org//16802004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23910 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-12 15:26:23 +00:00
lrn@google.com
9614a603bb
Proof-of-concept matchPrefix on Pattern.
...
Can be used to implement startsWith (and endsWith with a loop).
R=floitsch@google.com
Review URL: https://codereview.chromium.org//15709018
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23897 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-12 08:37:36 +00:00
ahe@google.com
233a218a30
Fix two type errors and dart2dart status.
...
Review URL: https://codereview.chromium.org//16728005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23894 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-12 07:38:32 +00:00
asiva@google.com
d8ef2ae701
Fix issue 11214 avoid length overflow in String::ConcatAll
...
R=hausner@google.com
Review URL: https://codereview.chromium.org//16783003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23886 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-11 23:07:57 +00:00
regis@google.com
8f62a87598
Switch code generation on ARM from softfp ABI to hardfp ABI.
...
Support leaf float runtime calls in ARM simulator.
Enable previously failing tests.
R=zra@google.com
Review URL: https://codereview.chromium.org//16638012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23868 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-11 16:47:01 +00:00
ahe@google.com
3c056867ae
Set the supertype to avoid loop.
...
R=johnniwinther@google.com , karlklose@google.com
Review URL: https://codereview.chromium.org//15911008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23852 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-11 13:47:35 +00:00
scheglov@google.com
0049091064
Clean up analyzer_experimental after Annotation disambiguation.
...
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//16663003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23836 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-10 23:55:54 +00:00
brianwilkerson@google.com
1fe4022b7c
Fix for issue 10970
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//16690009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23830 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-10 21:33:43 +00:00
ngeoffray@google.com
7cef6db7e3
Rip-off the backend type inferrer.
...
R=kasperl@google.com
Review URL: https://codereview.chromium.org//16077015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23811 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-10 14:07:34 +00:00
ngeoffray@google.com
d89da9a09e
Break a cycle in the speculative type propagator by checking if a desired type goes to unknown.
...
R=kasperl@google.com
Review URL: https://codereview.chromium.org//16737003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23806 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-10 12:27:24 +00:00
scheglov@google.com
6e8d2cf3f4
Don't use 'fail, OK' except of co19
...
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//16293005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23766 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-07 19:49:35 +00:00
hausner@google.com
e8b07ea4eb
Fix dart analyzer status file
...
Review URL: https://codereview.chromium.org//16306011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23755 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-07 16:46:15 +00:00
hausner@google.com
bf5835d89e
BREAKING CHANGE: Remove === and !== in the VM compiler
...
This change is long overdue. Fixed the last places where we
still used ===.
R=iposva@google.com
Review URL: https://codereview.chromium.org//16398006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23751 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-07 16:31:33 +00:00
ngeoffray@google.com
2102b3e600
Revert r23735, some tests failed.
...
Review URL: https://codereview.chromium.org//15978004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23736 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-07 09:36:56 +00:00
ngeoffray@google.com
9c7e9947e4
Fix https://code.google.com/p/dart/issues/detail?id=11117 by not inlining geenrative constructors and their bodies.
...
R=kasperl@google.com
Review URL: https://codereview.chromium.org//16049017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23735 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-07 09:03:46 +00:00
zra@google.com
7718086a5f
Fixes small ARM bugs, and updates status files.
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//16054007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23718 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-06 21:52:26 +00:00
scheglov@google.com
80fea8fd8e
More fixes for java2dart and status files.
...
Now DDA passes/fails the same tests as Java version.
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org//15675016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23705 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-06 18:13:44 +00:00
jwren@google.com
104baea740
Fix for the broken analyzer-FYI bot
...
R=brianwilkerson@google.com , scheglov@google.com
Review URL: https://codereview.chromium.org//16410006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23697 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-06 16:57:58 +00:00
lrn@google.com
450e0f64d9
Fix-up RegExp implementations.
...
VM _JSRegExpMatch didn't have correct "pattern" getter and exposed
too many members. Also didn't allow matching an empty match at the
end of the string with .allMatches.
JS RegExp didn't advance the position correctly after an empty match.
BUG=http://dartbug.com/1301 , http://dartbug.com/6554
R=floitsch@google.com , ngeoffray@google.com
Review URL: https://codereview.chromium.org//16206008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23675 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-06 11:44:04 +00:00
ngeoffray@google.com
4e842914ad
Fix 2/2 for bug https://code.google.com/p/dart/issues/detail?id=11117 : when inlining a generative constructor, register it to the backend.
...
R=kasperl@google.com
Review URL: https://codereview.chromium.org//16533002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23666 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-06 08:58:41 +00:00
ngeoffray@google.com
d727cfeda8
Fix bug in SsaConstructionFieldTypes: handle mulitple assignments to the same field.
...
R=kasperl@google.com
Review URL: https://codereview.chromium.org//15725018
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23665 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-06 08:54:00 +00:00