[dart2wasm] Shorten JS interop specialization trampolines. Change-Id: Ic177b956e135b3ca015ef8eb70861916cd70e0bc Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278998 Reviewed-by: Srujan Gaddam <srujzs@google.com> Commit-Queue: Joshua Litt <joshualitt@google.com>
diff --git a/pkg/dart2wasm/lib/js_runtime_generator.dart b/pkg/dart2wasm/lib/js_runtime_generator.dart index 0c36340..de32e68 100644 --- a/pkg/dart2wasm/lib/js_runtime_generator.dart +++ b/pkg/dart2wasm/lib/js_runtime_generator.dart
@@ -47,6 +47,7 @@ String callArguments; String functionParameters; String object; + bool argumentsNeedParens = parameters.isEmpty || parameters.length > 1; if (isConstructor) { object = ''; callArguments = parameters.join(','); @@ -70,7 +71,7 @@ for (int i = 0; i < parameters.length; i++) { keyValuePairs.add('${keys[i]}: ${parameters[i]}'); } - bodyString = '{${keyValuePairs.join(',')}}'; + bodyString = '({${keyValuePairs.join(',')}})'; break; case _MethodType.constructor: bodyString = 'new $jsString($callArguments)'; @@ -85,9 +86,11 @@ bodyString = '$object.$jsString = $callArguments'; break; } - return """function($functionParameters) { - return $bodyString; - }"""; + if (argumentsNeedParens) { + return '($functionParameters) => $bodyString'; + } else { + return '$functionParameters => $bodyString'; + } } } @@ -446,7 +449,7 @@ } // Create Dart procedure stub for JS method. - final jsMethodName = '${config.tag}${_jsTrampolineN++}'; + final jsMethodName = '_${_jsTrampolineN++}'; final dartProcedureName = '|$jsMethodName'; final dartProcedure = Procedure( Name(dartProcedureName, _library),