There is a 'const' Symbol constructor that is not expressible as a Dart
const constructor because it performs validation of its input. This is
implemented in the libraries by using a dummy const constructor definition
that does not validate its input and replacing calls to 'new Symbol' with
calls to 'new Symbol.validated' in the compiler.
Without replacing calls to 'new Symbol', the non-validating dummy
implementation will be used, which is not correct.
Closes#24878.
R=asgerf@google.com
BUG=https://github.com/dart-lang/sdk/issues/24878
Review URL: https://codereview.chromium.org/1639313002 .
Support typed JS interop classes that extend the behavior of dart:html types in Dartium.
This theoretically enables supporting package:dom at the same time as dart:html as well as helping with
JavaScript libraries that monkey patch the dom.
Also support JS$ name prefix to resolve name conflicts with dart reserved words and with
dart:html libraries.
Cleanup addEventListener and friends so they are consistent with typed JS Interop and fix
bugs in the unlikely case where multiple functions have the same identity hash.
Add checks to make it easier to catch when allowInterop is accidentally omitted
when using the new typed JavaScript interop. You will now get an exception
any time you pass a Function to JS via the new typed interop without first
calling allowInterop.
BUG=
R=alanknight@google.com
Review URL: https://codereview.chromium.org/1583773003 .
- Make --gen/run-precompiled-snapshot take a directory to use for the snapshot pieces.
- Throw on Platform.executeable to prevent tests from becoming fork-bombs.
- Update status files so 'dart_precompiled' is generally expected to behave the same as 'vm'.
Currently multitests will fail unless run with --jobs=1 because the test harness assigns them the same temporary directory.
Running this also requires a great deal of space. My out directory is 380G.
BUG=http://dartbug.com/24975R=fschneider@google.com, srdjan@google.com
Review URL: https://codereview.chromium.org/1507943002 .
A TimelineTask represents an asynchronous track of operations on the timeline.
The old API allowed multiple isolates to emit events simultaneously on the same task or to start / finish events in any order. This isn't supported by our UI and probably many other tools that consume trace-event.
With this change, operations within a TimelineTask must complete in the reverse order of their start calls (aka a stack). You can pass a TimelineTask from one isolate to another but you must first complete all open operations before passing it.
Example:
var task = new TimelineTask();
task.start('Some phase');
await someFuture;
task.finish();
Also: Add support for instant events.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1412183008 .
If the JS ast contains an initializer list:
var x = foo(), y = await x;
It would be retained as a single statement and generate invalid output
that awaits 'x' before it has been defined.
CLOSES=23997
BUG=
R=sigurdm@google.com
Review URL: https://codereview.chromium.org/1427593003 .
More specifically ./tools/test.py --noopt -mall -ax64,simarm,simarm64,simmips --exclude-suite=pkg
- Add missing dart:io entry point.
- Add checks that Dart_FinalizeLoading, Dart_Precompile, Dart_CreatePrecompiledSnapshot are called in order.
- Add checks for --precompilation flag.
- Add checks for dropped class in Dart_New/Allocate/AllocateWithNativeFields.
R=fschneider@google.com
Review URL: https://codereview.chromium.org/1407393005 .
This should resolve an outstanding issue with unreachable code being
transformed. A subterm in the unreachable code would get specialized
and then reanalyzed while some of the definitions in scope have no type.
This changes a lot of test case results. Some test results
have changed in very surprising ways, but I would argue
these are separate bugs that we should hunt down.
BUG=
R=kmillikin@google.com
Review URL: https://codereview.chromium.org//1335273003 .
This replaces the NSS secure networking library from Mozilla
with the BoringSSL library from Google. This library, based
on OpenSSL, reads certificates from files in PEM format, rather
than storing certificates and keys in a SQLite database, the
way NSS does. There will be a blog post, changelog entries,
and other documentation of the breaking changes.
Review URL: https://codereview.chromium.org//1319703002 .