Index: pkg/compiler/lib/src/js_backend/backend.dart |
diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart |
index bb884785efd6b07c9a319717734fd026242499d7..4273279bc712c7409c1dbd7845217dc98d7adff7 100644 |
--- a/pkg/compiler/lib/src/js_backend/backend.dart |
+++ b/pkg/compiler/lib/src/js_backend/backend.dart |
@@ -278,7 +278,9 @@ class JavaScriptBackend extends Backend { |
ClassElement closureClass; |
ClassElement boundClosureClass; |
- Element assertMethod; |
+ Element assertTestMethod; |
+ Element assertThrowMethod; |
+ Element assertHelperMethod; |
Element invokeOnMethod; |
ClassElement jsInterceptorClass; |
@@ -1357,8 +1359,6 @@ class JavaScriptBackend extends Backend { |
} |
} |
- bool isAssertMethod(Element element) => element == assertMethod; |
- |
void registerRequiredType(DartType type, Element enclosingElement) { |
// If [argument] has type variables or is a type variable, this method |
// registers a RTI dependency between the class where the type variable is |
@@ -2121,7 +2121,9 @@ class JavaScriptBackend extends Backend { |
jsMutableIndexableClass = findClass('JSMutableIndexable'); |
} else if (uri == DART_JS_HELPER) { |
initializeHelperClasses(); |
- assertMethod = findHelper('assertHelper'); |
+ assertTestMethod = findHelper('assertTest'); |
+ assertThrowMethod = findHelper('assertThrow'); |
+ assertHelperMethod = findHelper('assertHelper'); |
typeLiteralClass = findClass('TypeImpl'); |
constMapLiteralClass = findClass('ConstantMap'); |
@@ -2921,8 +2923,13 @@ class JavaScriptResolutionCallbacks extends ResolutionCallbacks { |
registry.registerInstantiation(element.rawType); |
} |
- void onAssert(Send node, Registry registry) { |
- registerBackendStaticInvocation(backend.assertMethod, registry); |
+ void onAssert(bool hasMessage, Registry registry) { |
+ if (hasMessage) { |
+ registerBackendStaticInvocation(backend.assertTestMethod, registry); |
+ registerBackendStaticInvocation(backend.assertThrowMethod, registry); |
+ } else { |
+ registerBackendStaticInvocation(backend.assertHelperMethod, registry); |
+ } |
} |
void onAsyncForIn(AsyncForIn node, Registry registry) { |