diff --git a/packages/flutter_tools/lib/src/compile.dart b/packages/flutter_tools/lib/src/compile.dart index 2aa8dea5b7f..e7101512fa2 100644 --- a/packages/flutter_tools/lib/src/compile.dart +++ b/packages/flutter_tools/lib/src/compile.dart @@ -464,6 +464,7 @@ class _CompileExpressionToJsRequest extends _CompilationRequest { _CompileExpressionToJsRequest( super.completer, this.libraryUri, + this.scriptUri, this.line, this.column, this.jsModules, @@ -473,6 +474,7 @@ class _CompileExpressionToJsRequest extends _CompilationRequest { ); final String? libraryUri; + final String? scriptUri; final int line; final int column; final Map? jsModules; @@ -591,6 +593,7 @@ abstract class ResidentCompiler { /// compilation result and a number of errors. Future compileExpressionToJs( String libraryUri, + String scriptUri, int line, int column, Map jsModules, @@ -1001,6 +1004,7 @@ class DefaultResidentCompiler implements ResidentCompiler { @override Future compileExpressionToJs( String libraryUri, + String scriptUri, int line, int column, Map jsModules, @@ -1017,6 +1021,7 @@ class DefaultResidentCompiler implements ResidentCompiler { _CompileExpressionToJsRequest( completer, libraryUri, + scriptUri, line, column, jsModules, @@ -1038,23 +1043,23 @@ class DefaultResidentCompiler implements ResidentCompiler { return null; } - final String inputKey = Uuid().generateV4(); server.stdin - ..writeln('compile-expression-to-js $inputKey') - ..writeln(request.libraryUri ?? '') - ..writeln(request.line) - ..writeln(request.column); - request.jsModules?.forEach((String k, String v) { - server.stdin.writeln('$k:$v'); - }); - server.stdin.writeln(inputKey); - request.jsFrameValues?.forEach((String k, String v) { - server.stdin.writeln('$k:$v'); - }); - server.stdin - ..writeln(inputKey) - ..writeln(request.moduleName ?? '') - ..writeln(request.expression ?? ''); + ..writeln('JSON_INPUT') + ..writeln( + json.encode({ + 'type': 'COMPILE_EXPRESSION_JS', + 'data': { + 'expression': request.expression, + 'libraryUri': request.libraryUri, + 'scriptUri': request.scriptUri, + 'line': request.line, + 'column': request.column, + 'jsModules': request.jsModules, + 'jsFrameValues': request.jsFrameValues, + 'moduleName': request.moduleName, + }, + }), + ); return _stdoutHandler.compilerOutput?.future; } diff --git a/packages/flutter_tools/lib/src/isolated/web_expression_compiler.dart b/packages/flutter_tools/lib/src/isolated/web_expression_compiler.dart index ab6d0f1db33..aff54aefa2f 100644 --- a/packages/flutter_tools/lib/src/isolated/web_expression_compiler.dart +++ b/packages/flutter_tools/lib/src/isolated/web_expression_compiler.dart @@ -25,6 +25,7 @@ class WebExpressionCompiler implements ExpressionCompiler { Future compileExpressionToJs( String isolateId, String libraryUri, + String scriptUri, int line, int column, Map jsModules, @@ -34,6 +35,7 @@ class WebExpressionCompiler implements ExpressionCompiler { ) async { final CompilerOutput? compilerOutput = await _generator.compileExpressionToJs( libraryUri, + scriptUri, line, column, jsModules, diff --git a/packages/flutter_tools/pubspec.yaml b/packages/flutter_tools/pubspec.yaml index 2135c4f31d0..bd2e83a19f7 100644 --- a/packages/flutter_tools/pubspec.yaml +++ b/packages/flutter_tools/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: archive: 3.6.1 args: 2.7.0 dds: 5.0.3 - dwds: 25.1.0 + dwds: 26.0.0 code_builder: 4.11.0 collection: 1.19.1 completion: 1.0.2 @@ -127,4 +127,4 @@ dev_dependencies: dartdoc: # Exclude this package from the hosted API docs. nodoc: true -# PUBSPEC CHECKSUM: ho7nke +# PUBSPEC CHECKSUM: 848sij diff --git a/packages/flutter_tools/test/general.shard/web/web_expression_compiler_test.dart b/packages/flutter_tools/test/general.shard/web/web_expression_compiler_test.dart index 3177003dfff..40d391f6432 100644 --- a/packages/flutter_tools/test/general.shard/web/web_expression_compiler_test.dart +++ b/packages/flutter_tools/test/general.shard/web/web_expression_compiler_test.dart @@ -29,6 +29,7 @@ void main() { ); final ExpressionCompilationResult result = await expressionCompiler.compileExpressionToJs( + '', '', '', 1, @@ -53,6 +54,7 @@ void main() { ); final ExpressionCompilationResult result = await expressionCompiler.compileExpressionToJs( + '', '', '', 1, @@ -74,6 +76,7 @@ void main() { ); final ExpressionCompilationResult result = await expressionCompiler.compileExpressionToJs( + '', '', '', 1, @@ -105,6 +108,7 @@ class FakeResidentCompiler extends Fake implements ResidentCompiler { @override Future compileExpressionToJs( String libraryUri, + String scriptUri, int line, int column, Map jsModules,