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

Unified Diff: pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart

Issue 2110273003: Make is checks work on JavaScriptFunction objects. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 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 side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart
diff --git a/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart b/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart
index ae4cbba9da9adb9d8a8d795c138889cd49dfc683..ddef40bd3004ae03c2ee89196530571ad7c70c1b 100644
--- a/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart
+++ b/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart
@@ -132,6 +132,17 @@ class RuntimeTypeGenerator {
_generateIsTestsOn(classElement, generateIsTest,
generateFunctionTypeSignature, generateSubstitution, generateTypeCheck);
+ if (classElement == backend.helpers.jsJavaScriptFunctionClass) {
+ var type = backend.jsInteropAnalysis.buildJsFunctionType();
+ if (type != null) {
+ jsAst.Expression thisAccess = new jsAst.This();
+ RuntimeTypesEncoder rtiEncoder = backend.rtiEncoder;
+ jsAst.Expression encoding =
+ rtiEncoder.getSignatureEncoding(type, thisAccess);
+ jsAst.Name operatorSignature = namer.asName(namer.operatorSignature);
+ result.properties[operatorSignature] = encoding;
+ }
+ }
return result;
}

Powered by Google App Engine
This is Rietveld 408576698