Commit Graph

10 Commits

Author SHA1 Message Date
Dmitry Stefantsov 7ccfd3599c Remove one more unused import
R=karlklose@google.com

Review-Url: https://codereview.chromium.org/2943653002 .
2017-06-16 12:01:21 +02:00
Dmitry Stefantsov c4f4d010fb Remove ContextClass that is not needed since we're using Vectors
Previously reified representation of contexts, also known as
ContextClass, was used in closure conversion.  Now that we've switched
to Vectors, we no longer need that class.

R=karlklose@google.com

Review-Url: https://codereview.chromium.org/2937213002 .
2017-06-16 10:32:36 +02:00
Dmitry Stefantsov 5982ace801 Add transformLibraries for closure conversion
Closure conversion can now be run on a part of a program.  It allows
using closure conversion in kernel-isolate.  It comes at a cost of
temporarily sacrificing implementation of tear-offs via closures; VM
mechanism for tear-offs is used for now.

R=ahe@google.com

Review-Url: https://codereview.chromium.org/2938773003 .
2017-06-15 14:18:10 +02:00
Konstantin Shcheglov 3803374d32 Don't recreate CoreTypes in transformers. Pass it in.
The same will be done later for ClassHierarchy. So, it would be up to
the client to decide which flavour to create, and whether the same
instance can be reused.

R=ahe@google.com, kmillikin@google.com, paulberry@google.com, sigmund@google.com
BUG=

Review-Url: https://codereview.chromium.org/2904203003 .
2017-05-31 09:54:27 -07:00
Karl Klose e88a478a7c Handle constructor bodies
Also rewrites untransformed closures (for example those in initializers) to throw an exception.

R=ahe@google.com

Review-Url: https://codereview.chromium.org/2639253003 .
2017-01-19 13:32:18 +01:00
Karl Klose ff99a0ce59 Merge kernel closure conversion into the Dart SDK
This is the result of:
- taking the diff of the branch closure_conversion to master in the kernel
repository
- updating the file paths
- applying the diff to the Dart SDK
- fixing conflicts between the changes to pkg/kernel in the Dart SDK and the master branch in the kernel repository

R=asgerf@google.com

Review-Url: https://codereview.chromium.org/2561723003 .
2016-12-15 10:16:22 +01:00
Asger Feldthaus 5d310431bd Remove closure_conversion.dart from pkg/kernel.
This file is not strong-mode clean, but since a more recent version
of closure conversion still exists in a branch on the kernel github
repo, there is not much point in fixing this version of it.

BUG=
R=ahe@google.com

Review URL: https://codereview.chromium.org/2526793002 .
2016-11-23 15:34:35 +01:00
Asger Feldthaus c3bcd19da6 [kernel] Fix crashes in closure conversion.
CoreTypes should not require that dart:_internal::Context exists.

BUG=
R=kmillikin@google.com

Review URL: https://chromereviews.googleplex.com/507407013 .
2016-09-21 12:19:52 +02:00
Peter von der Ahé 4cb8fa6b49 [kernel] Return invalid declaration, not null.
R=karlklose@google.com

Review URL: https://chromereviews.googleplex.com/509807014 .
2016-09-20 11:30:45 +02:00
Kevin Millikin 4e5e312534 [kernel] Context allocation, variable get, and variable set (non-loop contexts).
Allocate contexts to hold captured variables.  Rewrite captured variable
access to context access.  Outside of a local function, this is a single
indirection through a named context.  Inside a local function it requires
traversing (a statically known number of) parent links.

R=ahe@google.com

Review URL: https://chromereviews.googleplex.com/507717013 .
2016-09-20 09:07:22 +02:00