No description
Find a file
Asger Feldthaus f42a0ef25c dart2js cps: Always use interceptors and type tags for 'is' checks.
"x is Foo" will become getInterceptor(x).$isFoo

Testing against a type with type arguments is still a giveup().

This test always works, but is not very fast. For instance, testing
against an int should be "typeof x === 'number' && Math.floor(x) === x".

Following an offline discussion with Karl, the plan is to rewrite
'is'-checks to more fine-grained tests in a CPS optimization pass,
probably the type propagator.

Concretely, we plan to introduce IR nodes like TypeOfTest, FloorTest,
InstanceofTest, etc, which optimization phases can introduce under the
right circumstances. That way, the code generation phase remains simple.

BUG=
R=karlklose@google.com

Review URL: https://codereview.chromium.org//1144163004
2015-05-26 17:50:48 +02:00
client
docs/language
pkg dart2js cps: Always use interceptors and type tags for 'is' checks. 2015-05-26 17:50:48 +02:00
runtime
samples
samples-dev
sdk
site/try
tests dart2js cps: Always use interceptors and type tags for 'is' checks. 2015-05-26 17:50:48 +02:00
third_party
tools
utils
.gitignore
.mailmap
AUTHORS
CHANGELOG.md Update CHANGELOG 2015-05-26 14:21:20 +02:00
codereview.settings
create_sdk.gyp
dart.gyp
DEPS
LICENSE
PATENTS
PRESUBMIT.py
README.dart-sdk
README.md
WATCHLISTS

Dart

Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.

Using Dart

Visit the dartlang.org to learn more about the language, tools, getting started, and more.

Browse pub.dartlang.org for more packages and libraries contributed by the community and the Dart team.

Contributing to Dart

The easiest way to contribute to Dart is to file issues.

You can also contribute patches, as described in Contributing.

License

See LICENSE.