| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 | 4 |
| 5 library _js_helper; | 5 library _js_helper; |
| 6 | 6 |
| 7 import 'dart:_js_embedded_names' show | 7 import 'dart:_js_embedded_names' show |
| 8 DEFERRED_LIBRARY_URIS, | 8 DEFERRED_LIBRARY_URIS, |
| 9 DEFERRED_LIBRARY_HASHES, | 9 DEFERRED_LIBRARY_HASHES, |
| 10 GET_TYPE_FROM_NAME, | 10 GET_TYPE_FROM_NAME, |
| (...skipping 3303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3314 String toString() => message; | 3314 String toString() => message; |
| 3315 } | 3315 } |
| 3316 | 3316 |
| 3317 class FallThroughErrorImplementation extends FallThroughError { | 3317 class FallThroughErrorImplementation extends FallThroughError { |
| 3318 FallThroughErrorImplementation(); | 3318 FallThroughErrorImplementation(); |
| 3319 String toString() => "Switch case fall-through."; | 3319 String toString() => "Switch case fall-through."; |
| 3320 } | 3320 } |
| 3321 | 3321 |
| 3322 /** | 3322 /** |
| 3323 * Helper function for implementing asserts. The compiler treats this specially. | 3323 * Helper function for implementing asserts. The compiler treats this specially. |
| 3324 * | |
| 3325 * Returns the negation of the condition. That is: `true` if the assert should | |
| 3326 * fail. | |
| 3327 */ | 3324 */ |
| 3328 bool assertTest(condition) { | 3325 void assertHelper(condition) { |
| 3329 // Do bool success check first, it is common and faster than 'is Function'. | 3326 // Do a bool check first because it is common and faster than 'is Function'. |
| 3330 if (true == condition) return false; | 3327 if (condition is !bool) { |
| 3331 if (condition is Function) condition = condition(); | 3328 if (condition is Function) condition = condition(); |
| 3332 if (condition is bool) return !condition; | 3329 if (condition is !bool) { |
| 3333 throw new TypeErrorImplementation(condition, 'bool'); | 3330 throw new TypeErrorImplementation(condition, 'bool'); |
| 3331 } |
| 3332 } |
| 3333 // Compare to true to avoid boolean conversion check in checked |
| 3334 // mode. |
| 3335 if (true != condition) throw new AssertionError(); |
| 3334 } | 3336 } |
| 3335 | 3337 |
| 3336 /** | 3338 /** |
| 3337 * Helper function for implementing asserts with messages. | |
| 3338 * The compiler treats this specially. | |
| 3339 */ | |
| 3340 void assertThrow(Object message) { | |
| 3341 throw new _AssertionError(message); | |
| 3342 } | |
| 3343 | |
| 3344 /** | |
| 3345 * Helper function for implementing asserts without messages. | |
| 3346 * The compiler treats this specially. | |
| 3347 */ | |
| 3348 @NoInline() | |
| 3349 void assertHelper(condition) { | |
| 3350 if (assertTest(condition)) throw new AssertionError(); | |
| 3351 } | |
| 3352 | |
| 3353 /** | |
| 3354 * Called by generated code when a method that must be statically | 3339 * Called by generated code when a method that must be statically |
| 3355 * resolved cannot be found. | 3340 * resolved cannot be found. |
| 3356 */ | 3341 */ |
| 3357 void throwNoSuchMethod(obj, name, arguments, expectedArgumentNames) { | 3342 void throwNoSuchMethod(obj, name, arguments, expectedArgumentNames) { |
| 3358 Symbol memberName = new _symbol_dev.Symbol.unvalidated(name); | 3343 Symbol memberName = new _symbol_dev.Symbol.unvalidated(name); |
| 3359 throw new NoSuchMethodError(obj, memberName, arguments, | 3344 throw new NoSuchMethodError(obj, memberName, arguments, |
| 3360 new Map<Symbol, dynamic>(), | 3345 new Map<Symbol, dynamic>(), |
| 3361 expectedArgumentNames); | 3346 expectedArgumentNames); |
| 3362 } | 3347 } |
| 3363 | 3348 |
| (...skipping 639 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4003 throw new MainError("No top-level function named 'main'."); | 3988 throw new MainError("No top-level function named 'main'."); |
| 4004 } | 3989 } |
| 4005 | 3990 |
| 4006 void badMain() { | 3991 void badMain() { |
| 4007 throw new MainError("'main' is not a function."); | 3992 throw new MainError("'main' is not a function."); |
| 4008 } | 3993 } |
| 4009 | 3994 |
| 4010 void mainHasTooManyParameters() { | 3995 void mainHasTooManyParameters() { |
| 4011 throw new MainError("'main' expects too many parameters."); | 3996 throw new MainError("'main' expects too many parameters."); |
| 4012 } | 3997 } |
| 4013 | |
| 4014 class _AssertionError extends AssertionError { | |
| 4015 final _message; | |
| 4016 _AssertionError(this._message); | |
| 4017 | |
| 4018 String toString() => "Assertion failed: " + Error.safeToString(_message); | |
| 4019 } | |
| OLD | NEW |