Support VMService.evaluate() for dart expressions (#1262)

* Support evaluate() with expression compiler

- Implement ChromeProxyService.evalute API using expression compiler,
  with a fallback to the previous version if expression evaluation is
  turned off.
- Add module format to ExpressionCompiler.initialize API and to
  LoadStrategy.
- Update expression evaluation tests to include evaluate().
- Support sound null safety mode in frontend_server tests and add
  frontend server expression evaluation tests with sound null safety.
- Add webdev e2e test for evaluate() API.

* Updated commments and build

* format

* format

* Addeded more evaluate() tests

* Revert sound null safety changes for frontend server

* Removed sound null safety tests for frontend server

* Addressed CR comments, simplified ExpressionEvaluator code

* Addressed CR comments in e2e tests

* temp

* Disable tests that require SDK not published to dev channel

* build

* Throw RPC error in evaluation if app is not paused

* Update min SDK and remove beta testing for now

* build

* Record compilation and evaluation errors in analytics

* Remove analyzing runs with beta sdk

* Record compilation and evaluation errors in analytics
35 files changed
tree: 47d84a1414cfeec8b2b893d3b0606702673828fd
  1. .github/
  2. dwds/
  3. example/
  4. fixtures/
  5. frontend_server_client/
  6. frontend_server_common/
  7. tool/
  8. webdev/
  9. .gitattributes
  10. .gitignore
  11. analysis_options.yaml
  12. AUTHORS
  13. CONTRIBUTING.md
  14. mono_repo.yaml
  15. README.md
README.md

Dart

dwds Pub Package

A service that proxies between the Chrome debug protocol and the Dart VM service protocol.

webdev Pub Package

A command-line tool for developing and deploying web applications with Dart.