[vm] Add unsafe mode to VM

This CL adds experimental --experimental-unsafe-mode-use-at-your-own-risk
VM option which does the following:
* Dart 2 strong mode type and bool checks are omitted.
* VM compiler optimizations which rely on strong mode types are disabled.

Applications which do not fail any strong mode checks at run time
should behave exactly the same in strong and weak modes.
Applications with failing strong mode checks will not see corresponding
errors but VM should not crash.

This option can be used for experiments, or as a temporary remedy for
regressions caused by expensive strong mode type checks.

Change-Id: I042cbccba83c105b61b3e11c659a35c20e0329cd
Reviewed-on: https://dart-review.googlesource.com/65484
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
8 files changed
tree: 3e81319430150f08808d463d3ba3804188b69466
  1. .clang-format
  2. .gitattributes
  3. .gitconfig
  4. .github/
  5. .gitignore
  6. .gn
  7. .mailmap
  8. .packages
  10. BUILD.gn
  11. CHANGELOG.md
  12. DEPS
  15. PRESUBMIT.py
  16. README.dart-sdk
  17. README.md
  19. build/
  20. client/
  21. codereview.settings
  22. dartdoc_options.yaml
  23. docs/
  24. foo
  25. pkg/
  26. runtime/
  27. samples-dev/
  28. samples/
  29. sdk/
  30. tests/
  31. third_party/
  32. tools/
  33. utils/


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.

Building Dart

If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.

There are more documents on our wiki.

Contributing to Dart

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

You can also contribute patches, as described in Contributing.

License & patents