Files
sdk/runtime/lib/core_patch.dart
T
zerny@google.com e449cd0329 Propagate the stack trace of the inner-most throw when using async/await.
This patch does not provide a full async stack trace, it only ensures
that the inner-most stack frame will be the point of the initial throw.

BUG=http://dartbug.com/22009
R=iposva@google.com

Review URL: https://codereview.chromium.org//893193004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43463 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-04 11:54:23 +00:00

24 lines
1016 B
Dart

// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import "dart:math";
import "dart:typed_data";
// We need to pass the exception and stack trace objects as second and third
// parameter to the continuation. See vm/ast_transformer.cc for usage.
void _asyncCatchHelper(catchFunction, continuation) {
catchFunction((e, s) => continuation(null, e, s));
}
// The members of this class are cloned and added to each class that
// represents an enum type.
class _EnumHelper {
// Declare the list of enum value names private. When this field is
// cloned into a user-defined enum class, the field will be inaccessible
// because of the library-specific name suffix. The toString() function
// below can access it because it uses the same name suffix.
static const List<String> _enum_names = null;
String toString() => _enum_names[index];
}