Commit Graph

5559 Commits

Author SHA1 Message Date
Johnni Winther 9cfba28da1 Compute NewStructure in resolution.
Closes #21134

R=sigurdm@google.com

Review URL: https://codereview.chromium.org/1437463005.
2015-11-11 11:46:08 +01:00
Asger Feldthaus a32a12f900 dart2js: Change how super tear-offs are registered.
Previously, torn off super methods would be registered by emulating a
dynamic getter call using an exact TypeMask for the super class as the
receiver.

If the super class was abstract (or just not instantiated), using an
exact TypeMask is absurd since there are no objects with that exact
class.

Now, methods that have been registered as "needing super getter" are
always considered to have their getter invoked, removing the need to
emulate the dynamic getter call.

BUG=
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org/1418573011 .
2015-11-06 11:49:05 +01:00
Asger Feldthaus 40632b2155 dart2js cps: Add failing test to status file.
BUG=

Review URL: https://codereview.chromium.org/1413343005 .
2015-11-06 11:32:43 +01:00
Lasse R.H. Nielsen 3c41869d3c Make dart2js accept constant null values in string interpolations.
Fixes issue #24839.
BUG= http://dartbug.com/24839
R=sigurdm@google.com

Review URL: https://codereview.chromium.org/1425823004 .
2015-11-06 10:58:06 +01:00
Florian Schneider 598018bd21 VM: Fix bug with ??= expressions using await.
Moving the construction of ?? into the parser using LetNode, so that the await-transformations are properly applied.

a ?? b becomes { temp = a; temp !== null ? temp : b; }

a ??= b becomes { temp = a; temp != null ? temp : a = b; }

BUG=issue #24392
R=hausner@google.com

Review URL: https://codereview.chromium.org/1417733007 .
2015-11-03 21:47:06 +01:00
Asger Feldthaus f4429324eb dart2js cps: Fix codegen for yield.
BUG=
R=kmillikin@google.com

Review URL: https://codereview.chromium.org/1415843006 .
2015-11-03 14:21:52 +01:00
Stephen Adams ef0c55f8a9 Upgrade some tests to use annotations instead of 'clever' confuse() function.
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1411243003 .
2015-11-02 14:11:36 -08:00
Florian Schneider e75056ccb4 VM: Fix bug with CHA-based inlining in --noopt mode.
Use propagated cids (not abstract types) only to specialize instance calls.

BUG=dartbug.com/24789
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1419013006 .
2015-11-02 19:48:26 +01:00
Florian Schneider dde638f7db Mark tests failing with --noopt in the status files.
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1415823004 .
2015-10-31 01:45:50 +01:00
Florian Schneider 64261cbb9d VM: Improve and fix double negation on MIPS.
Add neg-instruction to the MIPS backend and use it instead of mul with -1.

Fixes the test that requires that identical(nan, -nan) == false.

TEST=language/nan_identical_test
R=zra@google.com

Review URL: https://codereview.chromium.org/1425143003 .
2015-10-29 22:34:46 +01:00
Asger Feldthaus 0c25cd27ac dart2js cps: Remove unneeded bailout on captured loop variables.
The analysis of try-boxed variables reused some code from the old
dart2dart CPS backend, which had bailouts for code that is handled just
fine in the dart2js CPS backend.

R=karlklose@google.com, kmillikin@google.com

Committed: https://github.com/dart-lang/sdk/commit/695bdf4fa365fc84ef4dda9e0fde84b58772ca9b

Review URL: https://codereview.chromium.org/1410123005 .
2015-10-27 13:01:10 +01:00
Asger Feldthaus 11c7b77f63 Revert "dart2js cps: Remove unneeded bailout on captured loop variables."
This reverts commit 695bdf4fa3.

BUG=

Review URL: https://codereview.chromium.org/1417773008 .
2015-10-27 12:58:48 +01:00
Asger Feldthaus 11826bf9b7 dart2js cps: Do not inline static async methods.
BUG=
R=karlklose@google.com

Review URL: https://codereview.chromium.org/1414333008 .
2015-10-27 12:44:21 +01:00
Asger Feldthaus 695bdf4fa3 dart2js cps: Remove unneeded bailout on captured loop variables.
The analysis of try-boxed variables reused some code from the old
dart2dart CPS backend, which had bailouts for code that is handled just
fine in the dart2js CPS backend.

R=kmillikin@google.com

Review URL: https://codereview.chromium.org/1410123005 .
2015-10-27 11:51:28 +01:00
Asger Feldthaus 3634c3998a dart2js: Bugfix for when 'await' occurs in an initializer list.
If the JS ast contains an initializer list:

  var x = foo(), y = await x;

It would be retained as a single statement and generate invalid output
that awaits 'x' before it has been defined.

CLOSES=23997

BUG=
R=sigurdm@google.com

Review URL: https://codereview.chromium.org/1427593003 .
2015-10-27 11:36:57 +01:00
Asger Feldthaus 7c09a56c76 dart2js: Fix marking of boxed loop variables.
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1409933004 .
2015-10-23 17:40:34 +02:00
Asger Feldthaus 62f4488e6d dart2js: Update status file.
BUG=
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org/1420213002 .
2015-10-23 14:08:00 +02:00
Ryan Macnak 7c44ffb0cd Fix some loads of fields with large offsets.
BUG=http://dartbug.com/24673
R=fschneider@google.com

Review URL: https://codereview.chromium.org/1416233003 .
2015-10-22 09:48:29 -07:00
Ryan Macnak d7ed079d31 Noopt crash in deopt_inlined_function_lazy_test is expected because the test specifies --deoptimize-alot.
BUG=http://dartbug.com/24677
R=fschneider@google.com

Review URL: https://codereview.chromium.org/1415353002 .
2015-10-22 09:47:30 -07:00
Ryan Macnak 371a5dc932 Get tools/test.py --noopt green.
More specifically ./tools/test.py --noopt -mall -ax64,simarm,simarm64,simmips --exclude-suite=pkg

 - Add missing dart:io entry point.
 - Add checks that Dart_FinalizeLoading, Dart_Precompile, Dart_CreatePrecompiledSnapshot are called in order.
 - Add checks for --precompilation flag.
 - Add checks for dropped class in Dart_New/Allocate/AllocateWithNativeFields.

R=fschneider@google.com

Review URL: https://codereview.chromium.org/1407393005 .
2015-10-21 10:35:01 -07:00
Brian Wilkerson cc8f64b824 Do not generate warnings when noSuchMethod is inherited (issue 24337)
R=paulberry@google.com

Review URL: https://codereview.chromium.org/1414003003 .
2015-10-20 10:35:53 -07:00
Stephen Adams f80d85dee0 Generalize and_operation_on_non_int_operand_test.
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1411633002 .
2015-10-16 10:29:14 -07:00
Asger Feldthaus ee0f98ab33 dart2js cps: Ensure parameter default values are emitted.
BUG=
R=sra@google.com

Review URL: https://codereview.chromium.org/1411763002 .
2015-10-16 17:00:32 +02:00
Matthias Hausner 647ada25ed Make enum values array canonical
BUG=24594
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1407103002 .
2015-10-15 15:56:25 -07:00
Ryan Macnak b56991878f Fix Enum.toString when enum type is private.
R=hausner@google.com

Review URL: https://codereview.chromium.org/1398843008 .
2015-10-15 11:28:13 -07:00
Asger Feldthaus a50105543f dart2js cps: Add a pass for eliminating bounds checks.
The analysis uses a watered-down octagon domain which reduces range
analysis to a graph problem.

There are more ideas to try out to improve on this, but I think this is
a nice baseline to work from.

BUG=
R=sra@google.com

Review URL: https://codereview.chromium.org//1353443002 .
2015-10-13 16:40:54 +02:00
Johnni Winther c1214e8f99 Avoid creating invalid TypeMask.nonNullExact
BUG=
R=floitsch@google.com

Review URL: https://codereview.chromium.org/1402913003.
2015-10-13 15:12:40 +02:00
Florian Schneider ed42136acd Mark newly added sqrt test as pass/fail on ia32.
Some math libraries that use 80-bit precision operations may
give a wrong result for sqrt.

TBR=whesse@google.com

BUG=dartbug.com/24517

Review URL: https://codereview.chromium.org/1396743003 .
2015-10-08 20:06:50 +02:00
Florian Schneider 9f54259d57 VM: Fix FP math discrepancies by adding -mfpmath=sse to 32-bit simulator and cross host builds.
BUG=dartbug.com/24517
R=zra@google.com

Review URL: https://codereview.chromium.org/1395543003 .
2015-10-08 17:16:46 +02:00
Johnni Winther 11b0377ffa Update cps status.
BUG=

Review URL: https://codereview.chromium.org/1398443003.
2015-10-08 12:21:37 +02:00
Florian Schneider 8adefa8e79 VM: Support phis with pair representations.
This enables unboxed int64 values in phis on 32-bit platforms (ia32, ARM, MIPS).

On ia32 I measured SHA256 +14%, SHA1 +6%, MD5 +2%.

BUG=
R=johnmccutchan@google.com, regis@google.com

Review URL: https://codereview.chromium.org//1377113004 .
2015-10-08 11:43:55 +02:00
Paul Berry e34b7ddf00 Pull in analyzer_cli support for enabling the new task model.
Note that we are not pulling in the latest version of analyzer_cli,
since there is additional work to do in analyzer_cli before the pull
request can be merged into master (in particular, lint support needs to
be fixed--see https://github.com/dart-lang/analyzer_cli/pull/67).
Instead we pull in the commit from the pull request itself, which
enables the new task model but makes no other changes.

R=pquitslund@google.com

Review URL: https://codereview.chromium.org/1386233002 .
2015-10-06 14:25:22 -07:00
Matthias Hausner c5ed2f55b7 Fix await transformation of function calls
Ensure that side effects in actual parameter lists
are preserved in await’ed function calls,
eg. await foo(a++, a++)

BUG=24488
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1382123003 .
2015-10-05 10:31:05 -07:00
Asger Feldthaus f1a40e23c1 dart2js cps: Status updates and minor fixes for host checked mode.
CPS should now run the test suite cleanly in host-checked mode. Let's keep it that way.

BUG=
R=floitsch@google.com

Review URL: https://codereview.chromium.org/1377323003 .
2015-10-02 15:36:21 +02:00
Regis Crelier 451eaab718 Remove --supermixin flag from VM.
Update tests and test status files.

Fixes #24479.

R=hausner@google.com

Review URL: https://codereview.chromium.org/1383923002 .
2015-10-01 18:04:31 -07:00
Stephen Adams c6ef91be72 Suppress other test configs that do not handle mixins with super calls
TBR=regis@google.com

Review URL: https://codereview.chromium.org//1375233005 .
2015-09-30 10:57:25 -07:00
Alan Knight 25a262435a Suppress flaky language test
BUG=

Review URL: https://codereview.chromium.org//1380793002 .
2015-09-30 10:11:38 -07:00
Stephen Adams e3e8141069 More mixin super tests.
Test for super method calls when method with super call is at multiple positions on subclass chain.  It is not yet clear how to implement this efficiently in dart2js.

R=regis@google.com

Review URL: https://codereview.chromium.org//1372213006 .
2015-09-30 10:00:48 -07:00
Johnni Winther d6ea60bdfc Normalize constructor lookup.
BUG=
R=sigurdm@google.com

Review URL: https://codereview.chromium.org//1360153005.
2015-09-24 10:07:08 +02:00
Stephen Adams 5f4b76d353 Update status for --cps-ir language/async_return_types_test
TBR=johnniwinther@google.com

Review URL: https://codereview.chromium.org//1364063004 .
2015-09-23 18:09:32 -07:00
Sigurd 1c3dd67408 Avoid warning when using return; from sync* and async* functions.
Fixes https://github.com/dart-lang/sdk/issues/24406

R=johnniwinther@google.com

Committed: https://github.com/dart-lang/sdk/commit/75f80a204b98ebd65a5da1f2c1db6c6388d67887
Reverted: https://github.com/dart-lang/sdk/commit/8163c4a14199314b6fad626de61d031a35b4d2c1

Review URL: https://codereview.chromium.org//1367433002 .
2015-09-23 13:50:56 +02:00
Sigurd 8163c4a141 Revert "Avoid warning when using return; from sync* and async* functions."
This reverts commit 75f80a204b.

BUG=

Review URL: https://codereview.chromium.org//1361813003 .
2015-09-23 12:21:52 +02:00
Florian Loitsch f36b8aa4e4 dart2js: Make sure that super classes have their inheritance chain set up correctly.
This bug was only happening for the --fast-startup.
For most browsers we simply change the '__proto__' and the order wouldn't be important. However, for the other browsers we have to do it in order.

R=sigmund@google.com

Review URL: https://codereview.chromium.org//1347423003 .
2015-09-23 11:48:18 +02:00
Sigurd 75f80a204b Avoid warning when using return; from sync* and async* functions.
Fixes https://github.com/dart-lang/sdk/issues/24406

R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//1367433002 .
2015-09-23 11:07:31 +02:00
Karl Klose e28e578731 dart2js cps: Support sync* and yield.
R=asgerf@google.com, kmillikin@google.com

Review URL: https://codereview.chromium.org//1353843002 .
2015-09-23 11:01:34 +02:00
Asger Feldthaus ccb3af54ab dart2js cps: Set result of 'await' to dynamic instead of empty.
BUG=
R=karlklose@google.com

Review URL: https://codereview.chromium.org//1349723002 .
2015-09-21 11:37:39 +02:00
Ryan Macnak f4baf19a4c Mark dart2js as failing invocation_mirror_empty_arguments_test.
BUG=http://dartbug.com/24331

Review URL: https://codereview.chromium.org//1359443006 .
2015-09-18 18:03:17 -07:00
Ryan Macnak 5ee2da4475 Spec says empty namedArguments is const {}, not const <Symbol, dynamic>{}.
BUG=http://dartbug.com/24331
R=gbracha@google.com

Review URL: https://codereview.chromium.org//1359503002 .
2015-09-18 17:05:35 -07:00
Terry L. Lucas c5a690fa26 Revert "Mark tests problems because of Dartium JSInterop"
This reverts commit d1a7ee9ad7.

TBR=alanknight@google.com

Review URL: https://codereview.chromium.org//1355683005 .
2015-09-18 11:00:54 -07:00
Terry L. Lucas d1a7ee9ad7 Mark tests problems because of Dartium JSInterop
TBR=alanknight@google.com

Review URL: https://codereview.chromium.org//1358503002 .
2015-09-18 09:37:37 -07:00