dart-sdk/sdk/lib/core
Lasse R.H. Nielsen f0aeebd0e7 Make all platforms return null from Error.stackTrace until thrown.
The web platforms used to invent a spurious stack trace when reading
`Error.stackTrace` before the object was thrown.
They now return `null` instead, if there is no underlying JS error object,
matching specified behavior.

Fixed bugs in async error throwing in dart2wasm:
* `throw` in an async function did not set the stack trace on an error.
  Now calls `Error._throw` instead of just a direct Wasm "throw".
* `async*` functions did not capture the stack trace of a throw
  that ended the function body, which means it called
  `StreamController.addError` with only one argument.
  That then resused the stack trace from an `Error` throw instead
  of the correct stack trace.

Added tests.

Change-Id: I1d9fa8d9e18076a7fe28254b60b950866cd550a7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/354021
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Ömer Ağacan <omersa@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
2024-02-27 23:01:06 +00:00
..
annotations.dart
bigint.dart
bool.dart
comparable.dart
core.dart
core_sources.gni
date_time.dart
double.dart
duration.dart
enum.dart
errors.dart Make all platforms return null from Error.stackTrace until thrown. 2024-02-27 23:01:06 +00:00
exceptions.dart
function.dart
identical.dart
int.dart
invocation.dart
iterable.dart
iterator.dart
list.dart
map.dart
null.dart
num.dart
object.dart
pattern.dart
print.dart
record.dart
regexp.dart
set.dart
sink.dart
stacktrace.dart
stopwatch.dart
string.dart
string_buffer.dart
string_sink.dart
symbol.dart
type.dart
uri.dart
weak.dart