Commit Graph

32 Commits

Author SHA1 Message Date
Stephen Adams 38467cca03 Track always-initialized-to-null fields
Change-Id: Idb4d3a0395ce73eaaa4fc15a8df3bceaa4821b4f
Reviewed-on: https://dart-review.googlesource.com/57525
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-06-04 21:05:01 +00:00
Johnni Winther 82755aa303 Rename ClosedWorld to JClosedWorld and merge it with ClosedWorldRefiner
Change-Id: I858695194fe4b0dffb7c85a93e2d6bcc04dd6229
Reviewed-on: https://dart-review.googlesource.com/58022
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-06-04 09:22:41 +00:00
Johnni Winther b58cc36ddc Extract KClosedWorld from ClosedWorld.
Change-Id: I2db59cea5081fde2f0b35c6518d6b618df617ac1
Reviewed-on: https://dart-review.googlesource.com/57827
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-06-04 09:22:41 +00:00
Johnni Winther b75da964ef Move all type mask code to inferrer/typemasks and use it via an AbstractValueStrategy
Change-Id: Ib6f0089b0fee05488fea9295cbb5df944bb29d49
Reviewed-on: https://dart-review.googlesource.com/56980
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-05-31 16:15:32 +00:00
Emily Fortuna 49d5ca3bb4 Switch to BigInt for ConstantValue.
Change-Id: I17eec094d794b1c4791d491ea523d284f9eae4ed
Reviewed-on: https://dart-review.googlesource.com/55500
Commit-Queue: Emily Fortuna <efortuna@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2018-05-22 01:04:41 +00:00
Johnni Winther 78f348b3d5 Don't export types/masks.dart from types/types.dart
To make uses of TypeMask explicit in the imports.

Change-Id: I7c0c2377b65720394dcda217e5e68a4e3f9a4e9c
Reviewed-on: https://dart-review.googlesource.com/55421
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-05-17 08:05:42 +00:00
Johnni Winther 4c7926107e Remove support for --use-old-frontend option
Change-Id: Ia6e7ded5e312cce4841ded8170fc01a51f07b098
Reviewed-on: https://dart-review.googlesource.com/54229
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-05-09 09:11:01 +00:00
Johnni Winther 51fa3f3b0c Decouple HNode from TypeMask
Change-Id: Ie13d928d51ad7e080ad13402bed3c974da66a2c4
Reviewed-on: https://dart-review.googlesource.com/54020
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-05-08 11:20:44 +00:00
Johnni Winther d3c7df35b4 Revive AbstractValueDomain
- to decouple inference results from TypeMask.

Change-Id: Ibe2ec234e84262c5bff169ec7068ca1419706029
Reviewed-on: https://dart-review.googlesource.com/53942
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-05-08 11:20:44 +00:00
Johnni Winther 831a6ba598 Remove useOldFrontend testing from various tests
Change-Id: Iff97dd60756ae18cb0a3203cffd87c8da9e53757
Reviewed-on: https://dart-review.googlesource.com/53944
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-05-08 08:31:43 +00:00
Johnni Winther 9bac9ee596 Remove useOldFrontend from compiler_helper
Change-Id: Ief047cc08b3df47be3381336ec37ed24c53e6302
Reviewed-on: https://dart-review.googlesource.com/53980
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-05-08 08:31:43 +00:00
Johnni Winther 8e885f4393 Remove CompileMode
Change-Id: I7622231c3c81152236d671324fa58816c540d5b4
Reviewed-on: https://dart-review.googlesource.com/53941
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-05-08 08:31:43 +00:00
Johnni Winther 235b81d045 Remove MockCompiler
Change-Id: I476cb39f8fed068d7c47a15486419783f599a285
Reviewed-on: https://dart-review.googlesource.com/53806
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-05-07 10:07:40 +00:00
Johnni Winther 7afa0812ee Implement strong mode open world strategy.
Implements a new strategy for closed world computation that takes
the static type of the receiver into account when processing dynamic
calls.

For this to work, the J-model needs to only contain live members,
meaning queries can no longer assume that a J-model member exists for
instance for JSString.split because it might not be live.

This is the initial implementation which only uses
ir.MethodInvocation.invocationTarget. Later we will use the static
type of the expression on ir.MethodInvocation, ir.PropertyGet, and
ir.PropertySet.



Change-Id: I2dcc5a9148f27127d4e89c414a7d24f90f9cf2a4
Reviewed-on: https://dart-review.googlesource.com/48480
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-04-23 07:58:12 +00:00
Stephen Adams 32df3387f2 Fix the output type of HNegate.
TBR=sigmund@google.com

Change-Id: If5875aac80f111bb95852ad4d9f568dadf4f9d65
Reviewed-on: https://dart-review.googlesource.com/51980
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2018-04-19 20:18:38 +00:00
Johnni Winther c5f69dff2d Include call on Closure in inference
Closes #32835

Change-Id: Ief2096544e01f74e6cc52abd6131a24a10ffe75f
Reviewed-on: https://dart-review.googlesource.com/50680
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-04-13 08:46:26 +00:00
Sigmund Cherem c438f8b3f4 Dart2js defaults to the new common front-end
Change-Id: Id0f69d258b010a746b56e259335185bcca7dafec
Reviewed-on: https://dart-review.googlesource.com/45143
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-03-13 19:25:59 +00:00
Johnni Winther 99feac38cc Move unittests
Change-Id: I23972b65cd839b9e535e4c483312c0e66b43d374
Reviewed-on: https://dart-review.googlesource.com/34820
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-17 10:29:16 +00:00
Sigmund Cherem 0c04eb53c7 Disable int64 when running dart2js
The goal is to renable it as soon as we migrate our constant-evaluator and
constant folding to use Bigint.

Change-Id: I3bba1bbe07517e9cb496896b3417f58173878d62
Reviewed-on: https://dart-review.googlesource.com/34302
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
2018-01-16 19:52:22 +00:00
Johnni Winther 940f82bb8b Port unittests, #14 of ?
Change-Id: I6a16cf3cbaeafa2f4c58d617b1d6df9aefcc4afd
Reviewed-on: https://dart-review.googlesource.com/31781
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-03 08:37:09 +00:00
Johnni Winther 68e39ed6dc Split value_range_test and mark load_elimination_test as slow
Change-Id: I0becd6ddc9edd758f119436ec5ed6cdbde3c6359
Reviewed-on: https://dart-review.googlesource.com/31785
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-12-29 21:30:39 +00:00
Johnni Winther e6d4ee1cc4 Move unittests, part #13 of 13
Change-Id: I0001b681892a5f025339ef4822191a1c72b8ec83
Reviewed-on: https://dart-review.googlesource.com/31487
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-29 13:31:52 +00:00
Johnni Winther 50c0c38a60 Move unittests, #12 of ?
Change-Id: I218d69ecdefc7580ab192eb1aa36a0f000427c92
Reviewed-on: https://dart-review.googlesource.com/31485
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-29 13:02:07 +00:00
Johnni Winther e2b377c73f Move unittests, part #11 of ?
Change-Id: Id45adc172695b71716d5ef7019d688641ca828c4
Reviewed-on: https://dart-review.googlesource.com/31483
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-29 12:35:22 +00:00
Johnni Winther 399f0326c9 Move unittests, part #10 of ?
Change-Id: Ia346ac44c75b349b61c35e2e9816a7f3d92f04b4
Reviewed-on: https://dart-review.googlesource.com/31481
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-29 12:15:06 +00:00
Johnni Winther 410c3c4a69 Move unittests, part #9 of ?
Change-Id: Ief32bb619da08133a4247b2e4f80cad592f18d77
Reviewed-on: https://dart-review.googlesource.com/31423
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-29 11:40:45 +00:00
Johnni Winther cfcd796541 Move unittests, part #8 of ?
Change-Id: Ie89a0c733b80c4cfdd4d200b64f6fa2fcb6aedbc
Reviewed-on: https://dart-review.googlesource.com/31421
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-29 10:53:57 +00:00
Johnni Winther 9d0e00b97a Move unittests, part #7 of ?
Change-Id: I4940a7256ff39d0469201ca43e0cb7d1b919fca0
Reviewed-on: https://dart-review.googlesource.com/31344
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-29 10:26:43 +00:00
Johnni Winther 452205c73d Move unittests, part #6 of ?
Change-Id: I328f5d1fdcd9489005236d8db39fe213cc08b1ce
Reviewed-on: https://dart-review.googlesource.com/31142
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-22 13:08:51 +00:00
Johnni Winther c563d7845b Move unittests, part #5 of ?
Change-Id: I38c6a3f9c6c2620cc893ddef23bdc1e3a8bcb411
Reviewed-on: https://dart-review.googlesource.com/31061
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-22 12:23:38 +00:00
Johnni Winther 6d40c7629e Move unittests, part #4 of ?
- add 'deferred' folder for deferred load tests

Change-Id: I60b07b09df80bf6c8d3df6dcec9bce12bdcbafb8
Reviewed-on: https://dart-review.googlesource.com/30862
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-21 10:24:49 +00:00
Johnni Winther 1fc66812bf Move unittests, part #3 of ?
- add 'async_await' folder for testing async/await transformation
- add 'codegen' folder for testing of generated code
- add 'end_to_end' folder for testing of command-line interaction

Change-Id: Ic262db98d6156175bf53fcc53443cc2b273dd404
Reviewed-on: https://dart-review.googlesource.com/30780
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-21 10:00:14 +00:00