flutter_js
flutter_js copied to clipboard
javascriptRuntime.dispose() error
version: flutter_js: ^0.8.1
demo
import 'package:flutter/material.dart';
import 'package:flutter_js/flutter_js.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
late JavascriptRuntime javascriptRuntime;
@override
void initState() {
super.initState();
javascriptRuntime = getJavascriptRuntime();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
FilledButton(
onPressed: () {
JsEvalResult jsEvalResult = javascriptRuntime.evaluate("2 + 3");
debugPrint('jsEvalResult: ${jsEvalResult.stringResult} ${jsEvalResult.isError}');
javascriptRuntime.dispose();
javascriptRuntime = getJavascriptRuntime();
},
child: const Text("test"))
],
),
),
);
}
}
error
V/AudioManager( 3607): querySoundEffectsEnabled...
I/flutter ( 3607): jsEvalResult: 5 false
I/flutter ( 3607): reference leak:
I/flutter ( 3607): ADDR REF TYPE PROP
I/flutter ( 3607): 840208106 1 _JSFunction (key, val) => { this[key] = val; } ...
I/flutter ( 3607): 1027286156 1 _JSFunction function XMLHttpRequest() { ...
I/flutter ( 3607): 153620279 1 _JSFunction function FLUTTER_NATIVEJS_MakeQuerablePromise(promise) { ...
I/flutter ( 3607): #0 new JSError (package:flutter_js/quickjs/object.dart:92:41)
I/flutter ( 3607): #1 QuickJsRuntime2.close (package:flutter_js/quickjs/quickjs_runtime2.dart:148:13)
I/flutter ( 3607): #2 QuickJsRuntime2.dispose (package:flutter_js/quickjs/quickjs_runtime2.dart:217:7)
I/flutter ( 3607): #3 _MyHomePageState.build.<anonymous closure> (package:js_demo/main.dart:58:37)
I/flutter ( 3607): #4 _InkResponseState.handleTap (package:flutter/src/material/ink_well.dart:1171:21)
I/flutter ( 3607): #5 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:344:24)
I/flutter ( 3607): #6 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:652:11)
I/flutter ( 3607): #7 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:309:5)
I/flutter ( 3607): #8 BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/
Same error:
flutter: reference leak:
ADDR REF TYPE PROP
1029104943 1 _JSFunction (key, val) => { this[key] = val; } ...
472009285 1 _JSFunction function XMLHttpRequest() { ...
531664568 1 _JSFunction function FLUTTER_NATIVEJS_MakeQuerablePromise(promise) { ...
#0 new JSError package:flutter_js/quickjs/object.dart:92
#1 QuickJsRuntime2.close package:flutter_js/quickjs/quickjs_runtime2.dart:148
#2 QuickJsRuntime2.dispose package:flutter_js/quickjs/quickjs_runtime2.dart:217
@abner Is there any plan to fix this issue? Thanks
fixed in 0.8.5 https://github.com/abner/flutter_js/pull/173