Previously, a WebSocket would crash if it was closed after its
StreamSubscription was canceled. Now, it tracks whether the subscription
was canceled by canceling and nulling out its own internal subscription.
Fixes#23845R=ajohnsen@google.com
Review URL: https://codereview.chromium.org//1234163002 .
Without reflection, redirecting factory constructor invocations are shortcut at the instantiation site. With reflection, code like
reflectClass(Foo).newInstance(const Symbol(''), [])
can hit a redirecting factory constructor and we need to emit a function that does the redirection and type substitution.
R=asgerf@google.com
Review URL: https://codereview.chromium.org//1227873004 .
Try/finally is implemented by inlining. There is a try/catch to catch
exceptions in the try block. The catch body contains the finally code
followed by a rethrow. The code for finally is translated again after the
normal exit of the try block. Break, continue, and return exits in the try
block have the finally code inlined just before the exit is taken.
Try/catch/finally is not yet supported, it requires some changes to the
assigned variables analysis.
R=asgerf@google.com
Review URL: https://codereview.chromium.org//1201983002.
Added two new file modes WRITE_ONLY and WRITE_ONLY_APPEND. The current
file modes WRITE and WRITE_APPEND are kept as the read/write mode with
no change. Kept the same overall handling of create/truncate/append
semantics for the new file modes.
R=ager@google.com, ahe@google.com
BUG=
Review URL: https://codereview.chromium.org//1193653002.
The generated code uses different helpers than the SSA. In SSA, there are calls to buildFunctionType and _isTest. The CPS uses checkSubtypeOfRuntimeType, the "one size fits all" method we also use to test against type variable types.
When the function type has no type variables in it we could hoist the function type into a constant, but the constant system does not support type representation constants at the moment. But it seems like an optimization we may want to add later.
BUG=
R=karlklose@google.com
Review URL: https://codereview.chromium.org//1180973003.
Don't try to test sym-linked files on Windows as Junctions only support
directories.
This helps to locate the Dart SDK (if any) from the path of the dart
executable. On Linux the use of /proc/self/exe already takes care of this.
R=kustermann@google.com
BUG=
Review URL: https://codereview.chromium.org//1178643007.
Also resolve its directory if symlinked.
This helps to locate the Dart SDK (if any) from the path of the dart
executable. On Linux the use of /proc/self/exe already takes care of this.
R=kustermann@google.com
BUG=
Review URL: https://codereview.chromium.org//1160793004
We now optimize type casts that always fail or always pass.
Type propagation has been refactored a bit to make this work.
A new IR node Unreachable has been added. This is an node that is known
to be unreachable and is ultimately compiled to an empty statement.
BUG=
R=karlklose@google.com
Review URL: https://codereview.chromium.org//1153603006
If the PATH environmant variable is not passed when overriding the
exnironment for a spawned process on Linux a default is used.
From the man page for 'execvp':
The file is sought in the colon-separated list of directory
pathnames specified in the PATH environment variable. If this
variable isn't defined, the path list defaults to the current
directory followed by the list of directories returned by
confstr(_CS_PATH). (This confstr(3) call typically returns the
value "/bin:/usr/bin".)
If one have Dart installed in e.g. /usr/bin the test would fail, as
starting 'dart' would succeed.
R=kevmoo@google.com
BUG=
Review URL: https://codereview.chromium.org//1158743003