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 fbcbb0f49d601ea04a8f45557114bdc9e1c390ff..edce918b67714f55ed4bea8a5d388163a0e34ef7 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; |
@@ -1354,8 +1356,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 |
@@ -2129,7 +2129,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'); |
@@ -2926,8 +2928,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) { |