Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(443)

Side by Side Diff: pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/errors.dart

Issue 2934623003: fix #29753, use ES5 constructors for ddc (Closed)
Patch Set: rebase Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 part of dart._runtime; 4 part of dart._runtime;
5 5
6 // We need to set these properties while the sdk is only partially initialized 6 // We need to set these properties while the sdk is only partially initialized
7 // so we cannot use regular Dart fields. 7 // so we cannot use regular Dart fields.
8 // The default values for these properties are set when the global_ final field 8 // The default values for these properties are set when the global_ final field
9 // in runtime.dart is initialized. 9 // in runtime.dart is initialized.
10 10
(...skipping 22 matching lines...) Expand all
33 /// 33 ///
34 /// (There are many other ways that different `is` behavior can be observed, 34 /// (There are many other ways that different `is` behavior can be observed,
35 /// however, even with this flag. The most obvious is due to lack of reified 35 /// however, even with this flag. The most obvious is due to lack of reified
36 /// generic type parameters. This affects generic functions and methods, as 36 /// generic type parameters. This affects generic functions and methods, as
37 /// well as generic types when the type parameter was inferred. Setting this 37 /// well as generic types when the type parameter was inferred. Setting this
38 /// flag to `true` will not catch these differences in behavior..) 38 /// flag to `true` will not catch these differences in behavior..)
39 void failForWeakModeIsChecks(bool flag) { 39 void failForWeakModeIsChecks(bool flag) {
40 JS('', 'dart.__failForWeakModeIsChecks = #', flag); 40 JS('', 'dart.__failForWeakModeIsChecks = #', flag);
41 } 41 }
42 42
43 throwCastError(object, actual, type) => JS( 43 throwCastError(object, actual, type) {
44 '', 44 var found = typeName(actual);
45 '''(() => { 45 var expected = typeName(type);
46 var found = $typeName($actual); 46 if (JS('bool', 'dart.__trapRuntimeErrors')) JS('', 'debugger');
47 var expected = $typeName($type); 47 throw new CastErrorImplementation(object, found, expected);
48 if (dart.__trapRuntimeErrors) debugger; 48 }
49 $throw_(new $CastErrorImplementation($object, found, expected));
50 })()''');
51 49
52 throwTypeError(object, actual, type) => JS( 50 throwTypeError(object, actual, type) {
53 '', 51 var found = typeName(actual);
54 '''(() => { 52 var expected = typeName(type);
55 var found = $typeName($actual); 53 if (JS('bool', 'dart.__trapRuntimeErrors')) JS('', 'debugger');
56 var expected = $typeName($type); 54 throw new TypeErrorImplementation(object, found, expected);
57 if (dart.__trapRuntimeErrors) debugger; 55 }
58 $throw_(new $TypeErrorImplementation($object, found, expected));
59 })()''');
60 56
61 throwStrongModeCastError(object, actual, type) => JS( 57 throwStrongModeCastError(object, actual, type) {
62 '', 58 var found = typeName(actual);
63 '''(() => { 59 var expected = typeName(type);
64 var found = $typeName($actual); 60 if (JS('bool', 'dart.__trapRuntimeErrors')) JS('', 'debugger');
65 var expected = $typeName($type); 61 throw new StrongModeCastError(object, found, expected);
66 if (dart.__trapRuntimeErrors) debugger; 62 }
67 $throw_(new $StrongModeCastError($object, found, expected));
68 })()''');
69 63
70 throwStrongModeTypeError(object, actual, type) => JS( 64 throwStrongModeTypeError(object, actual, type) {
71 '', 65 var found = typeName(actual);
72 '''(() => { 66 var expected = typeName(type);
73 var found = $typeName($actual); 67 if (JS('bool', 'dart.__trapRuntimeErrors')) JS('', 'debugger');
74 var expected = $typeName($type); 68 throw new StrongModeTypeError(object, found, expected);
75 if (dart.__trapRuntimeErrors) debugger; 69 }
76 $throw_(new $StrongModeTypeError($object, found, expected));
77 })()''');
78 70
79 throwUnimplementedError(message) => JS( 71 throwUnimplementedError(String message) {
80 '', 72 if (JS('bool', 'dart.__trapRuntimeErrors')) JS('', 'debugger');
81 '''(() => { 73 throw new UnimplementedError(message);
82 if (dart.__trapRuntimeErrors) debugger; 74 }
83 $throw_(new $UnimplementedError($message));
84 })()''');
85 75
86 throwAssertionError([message]) => JS( 76 throwAssertionError([String message()]) {
87 '', 77 if (JS('bool', 'dart.__trapRuntimeErrors')) JS('', 'debugger');
88 '''(() => { 78 throw message != null
89 if (dart.__trapRuntimeErrors) debugger; 79 ? new AssertionErrorWithMessage(message())
90 let error = $message != null 80 : new AssertionError();
91 ? new $AssertionErrorWithMessage($message()) 81 }
92 : new $AssertionError();
93 $throw_(error);
94 })()''');
95 82
96 throwCyclicInitializationError([String message]) { 83 throwCyclicInitializationError([String message]) {
97 if (JS('bool', 'dart.__trapRuntimeErrors')) JS('', 'debugger'); 84 if (JS('bool', 'dart.__trapRuntimeErrors')) JS('', 'debugger');
98 throw new CyclicInitializationError(message); 85 throw new CyclicInitializationError(message);
99 } 86 }
100 87
101 throwNullValueError() => JS( 88 throwNullValueError() {
102 '',
103 '''(() => {
104 // TODO(vsm): Per spec, we should throw an NSM here. Technically, we ought 89 // TODO(vsm): Per spec, we should throw an NSM here. Technically, we ought
105 // to thread through method info, but that uglifies the code and can't 90 // to thread through method info, but that uglifies the code and can't
106 // actually be queried ... it only affects how the error is printed. 91 // actually be queried ... it only affects how the error is printed.
107 if (dart.__trapRuntimeErrors) debugger; 92 if (JS('bool', 'dart.__trapRuntimeErrors')) JS('', 'debugger');
108 $throw_(new $NoSuchMethodError(null, 93 throw new NoSuchMethodError(
109 new $Symbol('<Unexpected Null Value>'), null, null, null)); 94 null, new Symbol('<Unexpected Null Value>'), null, null, null);
110 })()'''); 95 }
111 96
112 throwNoSuchMethodError( 97 throwNoSuchMethodError(Object receiver, Symbol memberName,
113 receiver, memberName, positionalArguments, namedArguments) => 98 List positionalArguments, Map<Symbol, dynamic> namedArguments) {
114 JS( 99 if (JS('bool', 'dart.__trapRuntimeErrors')) JS('', 'debugger');
115 '', 100 throw new NoSuchMethodError(
116 '''(() => { 101 receiver, memberName, positionalArguments, namedArguments);
117 if (dart.__trapRuntimeErrors) debugger; 102 }
118 $throw_(new $NoSuchMethodError($receiver, $memberName, $positionalArguments, $ namedArguments));
119 })()''');
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698