diff --git a/example/pubspec.lock b/example/pubspec.lock index 224f900..425f30c 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -94,26 +94,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" matcher: dependency: transitive description: @@ -126,18 +126,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.15.0" path: dependency: transitive description: @@ -195,10 +195,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.2" vector_math: dependency: transitive description: @@ -211,10 +211,10 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.2.5" sdks: - dart: ">=3.3.0-279.1.beta <4.0.0" - flutter: ">=3.0.0" + dart: ">=3.5.0 <4.0.0" + flutter: ">=3.24.0" diff --git a/lib/src/ffi.dart b/lib/src/ffi.dart index 2e38578..f667520 100644 --- a/lib/src/ffi.dart +++ b/lib/src/ffi.dart @@ -6,6 +6,7 @@ * @LastEditTime: 2020-12-02 11:14:35 */ import 'dart:ffi'; +import 'dart:ffi' as ffi; import 'dart:io'; import 'dart:isolate'; import 'package:ffi/ffi.dart'; @@ -155,7 +156,7 @@ final Pointer Function() jsUNDEFINED = _qjsLib typedef _JSChannel = Pointer Function( Pointer ctx, int method, Pointer argv); typedef _JSChannelNative = Pointer Function( - Pointer ctx, IntPtr method, Pointer argv); + Pointer ctx, Int method, Pointer argv); /// JSRuntime *jsNewRuntime(JSChannel channel) final Pointer Function( @@ -190,7 +191,7 @@ class _RuntimeOpaque { final Map, _RuntimeOpaque> runtimeOpaques = Map(); -Pointer? channelDispacher( +Pointer channelDispacher( Pointer ctx, int type, Pointer argv, @@ -198,7 +199,10 @@ Pointer? channelDispacher( final rt = type == JSChannelType.FREE_OBJECT ? ctx.cast() : jsGetRuntime(ctx); - return runtimeOpaques[rt]?._channel(ctx, type, argv); + if(runtimeOpaques[rt] == null) { + return Pointer.fromAddress(0); + } + return runtimeOpaques[rt]!._channel(ctx, type, argv); } Pointer jsNewRuntime( diff --git a/pubspec.lock b/pubspec.lock index ea7357e..f75c2d7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,34 +5,39 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "36a321c3d2cbe01cbcb3540a87b8843846e0206df3e691fa7b23e19e78de6d49" + sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 url: "https://pub.dev" source: hosted - version: "65.0.0" + version: "72.0.0" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.3.2" analyzer: dependency: transitive description: name: analyzer - sha256: dfe03b90ec022450e22513b5e5ca1f01c0c01de9c3fba2f7fd233cb57a6b9a07 + sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.7.0" archive: dependency: transitive description: name: archive - sha256: "80e5141fafcb3361653ce308776cfd7d45e6e9fbb429e14eec571382c0c5fecb" + sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d url: "https://pub.dev" source: hosted - version: "3.3.2" + version: "3.6.1" args: dependency: transitive description: name: args - sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.5.0" async: dependency: transitive description: @@ -69,10 +74,10 @@ packages: dependency: transitive description: name: built_value - sha256: c9aabae0718ec394e5bc3c7272e6bb0dc0b32201a08fe185ec1d8401d3e39309 + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb url: "https://pub.dev" source: hosted - version: "8.8.1" + version: "8.9.2" characters: dependency: transitive description: @@ -85,10 +90,10 @@ packages: dependency: transitive description: name: cli_config - sha256: "65c7830649e1f8247660f1b783effb460255d6e2c1ac94eb823cf1f84e59b288" + sha256: ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec url: "https://pub.dev" source: hosted - version: "0.1.2" + version: "0.2.0" clock: dependency: transitive description: @@ -125,10 +130,10 @@ packages: dependency: transitive description: name: coverage - sha256: "8acabb8306b57a409bf4c83522065672ee13179297a6bb0cb9ead73948df7c76" + sha256: "3945034e86ea203af7a056d98e98e42a5518fff200d6e8e6647e1886b07e936e" url: "https://pub.dev" source: hosted - version: "1.7.2" + version: "1.8.0" crypto: dependency: transitive description: @@ -149,42 +154,50 @@ packages: dependency: transitive description: name: dap - sha256: "1dc9a11bc60836b151672d3edb6a56a18383ecf122e56eaf5837b32c81641aeb" + sha256: c0e53b52c9529d901329045afc4c5acb04304a28acde4b54ab0a08a93da546aa url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.3.0" dds: dependency: transitive description: name: dds - sha256: "436bf46d0bf15ec750098fbf4d43e90210873ea615aee14611bfd593ae52ddd8" + sha256: f3bca60b6b7d2b005268a1a579c82e38bec3d85cc85c332a872fe623c7ba94d7 url: "https://pub.dev" source: hosted - version: "3.1.0+1" + version: "4.2.4+2" dds_service_extensions: dependency: transitive description: name: dds_service_extensions - sha256: c41b86e0c7c496b39d10448f1e4bcd2dbabc29c4cce2bd6d864d57a837ab94b2 + sha256: "390ae1d0128bb43ffe11f8e3c6cd3a481c1920492d1026883d379cee50bdf1a2" url: "https://pub.dev" source: hosted - version: "1.6.2" + version: "2.0.0" devtools_shared: dependency: transitive description: name: devtools_shared - sha256: "7f173edabb97ac7c7815ae6b08dc18733504e62651eb0ab4216559e173164df1" + sha256: a6e66165629ec004cabd84e6971f502aeac07f1a5f6ffd9b3244cd05b1a06fb0 url: "https://pub.dev" source: hosted - version: "6.0.3" + version: "10.0.1" + dtd: + dependency: transitive + description: + name: dtd + sha256: "58ac5c2d628e575dbcdfda44a698cd4c1212663e27fe5f8ced37aea85faa0d30" + url: "https://pub.dev" + source: hosted + version: "2.2.0" dwds: dependency: transitive description: name: dwds - sha256: "7ae2b39e73f959e572fa5efabf3606b0c9863a39067a869ac3ea593ace901280" + sha256: "61ebaabb04d779d040b47d3b4d0b3963449ced0920fb8efd81ca6d5e51ccfc1a" url: "https://pub.dev" source: hosted - version: "23.0.0+1" + version: "24.0.0" extension_discovery: dependency: transitive description: @@ -252,10 +265,10 @@ packages: dependency: transitive description: name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "4.0.0" glob: dependency: transitive description: @@ -308,10 +321,10 @@ packages: dependency: transitive description: name: intl - sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.18.1" + version: "0.19.0" io: dependency: transitive description: @@ -320,14 +333,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.4" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" json_rpc_2: dependency: transitive description: @@ -340,26 +345,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" logging: dependency: transitive description: @@ -368,6 +373,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + macros: + dependency: transitive + description: + name: macros + sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" + url: "https://pub.dev" + source: hosted + version: "0.1.2-main.4" matcher: dependency: transitive description: @@ -380,34 +393,34 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.15.0" mime: dependency: transitive description: name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.5" multicast_dns: dependency: transitive description: name: multicast_dns - sha256: "316cc47a958d4bd3c67bd238fe8b44fdfb6133bad89cb191c0c3bd3edb14e296" + sha256: "982c4cc4cda5f98dd477bddfd623e8e4bd1014e7dbf9e7b05052e14a5b550b99" url: "https://pub.dev" source: hosted - version: "0.3.2+6" + version: "0.3.2+7" mustache_template: dependency: transitive description: @@ -420,26 +433,26 @@ packages: dependency: transitive description: name: native_assets_builder - sha256: "15076b8010eb1ab2a01c1b4bee6abd0174f40f2151406466119b69b398071df4" + sha256: e6612ad01cbc3c4d1b00a1a42aa25aa567950ab10ae1f95721574923540f3bd8 url: "https://pub.dev" source: hosted - version: "0.3.0" + version: "0.7.0" native_assets_cli: dependency: transitive description: name: native_assets_cli - sha256: "3119600043214157fb54f4ef05717a82a7858f35625fe767799c60f3039361c8" + sha256: f54ddc4a3f8cff1d8d63723b4938902da7586a5a47fe3c1bfa226eb80223f32e url: "https://pub.dev" source: hosted - version: "0.3.2" + version: "0.6.0" native_stack_traces: dependency: transitive description: name: native_stack_traces - sha256: c797830b9910d13b0f4e70ddef15cde034214fe3bdb8092c4ea5ffad2f74013f + sha256: "64d2f4bcf3b69326fb9bc91b4dd3a06f94bb5bbc3a65e25ae6467ace0b34bfd3" url: "https://pub.dev" source: hosted - version: "0.5.6" + version: "0.5.7" package_config: dependency: transitive description: @@ -468,10 +481,10 @@ packages: dependency: transitive description: name: platform - sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" url: "https://pub.dev" source: hosted - version: "3.1.4" + version: "3.1.5" pool: dependency: transitive description: @@ -569,10 +582,10 @@ packages: dependency: transitive description: name: sse - sha256: "8168874cdbd42c36ea118ba9f88a656ad97f604f28c976c61cb6d5b281c5319c" + sha256: fdce3a4ac3ae1c01083d05ded0bcdb7e02857ca2323823548e9e76d2f61638f0 url: "https://pub.dev" source: hosted - version: "4.1.4" + version: "4.1.5" stack_trace: dependency: transitive description: @@ -625,18 +638,18 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.2" test_core: dependency: transitive description: name: test_core - sha256: a757b14fc47507060a162cc2530d9a4a2f92f5100a952c7443b5cad5ef5b106a + sha256: "55ea5a652e38a1dfb32943a7973f3681a60f872f8c3a05a14664ad54ef9c6696" url: "https://pub.dev" source: hosted - version: "0.5.9" + version: "0.6.4" typed_data: dependency: transitive description: @@ -649,10 +662,10 @@ packages: dependency: transitive description: name: unified_analytics - sha256: "18204ce613142fc252b36f919d0f6dae4124df221812fe0b1bfb66251df280c1" + sha256: "916215af2dc2f54a204c6bfbc645ec401b6a150048764814379f42e09b557d2d" url: "https://pub.dev" source: hosted - version: "5.8.0+1" + version: "6.1.2" usage: dependency: transitive description: @@ -681,18 +694,18 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.2.5" vm_service_interface: dependency: transitive description: name: vm_service_interface - sha256: a1897b14842d58ca75de00ccaec6d0bdc9806b4c3560d781ef61dc6851a66f76 + sha256: f827453d9a3f8ceae04e389810da26f9b67636bdd13aa2dd9405b110c4daf59c url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.0" vm_snapshot_analysis: dependency: transitive description: @@ -713,18 +726,18 @@ packages: dependency: transitive description: name: web - sha256: edc8a9573dd8c5a83a183dae1af2b6fd4131377404706ca4e5420474784906fa + sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" url: "https://pub.dev" source: hosted - version: "0.4.0" + version: "0.5.1" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: "045ec2137c27bf1a32e6ffa0e734d532a6677bf9016a0d1a406c54e499ff945b" + sha256: "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42" url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.5" webdriver: dependency: transitive description: @@ -761,10 +774,10 @@ packages: dependency: transitive description: name: yaml_edit - sha256: "1579d4a0340a83cf9e4d580ea51a16329c916973bffd5bd4b45e911b25d46bfd" + sha256: e9c1a3543d2da0db3e90270dbb1e4eebc985ee5e3ffe468d83224472b2194a5f url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.2.1" sdks: - dart: ">=3.3.0-279.1.beta <4.0.0" - flutter: ">=3.0.0" + dart: ">=3.5.0 <4.0.0" + flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index 0752072..4d784a3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -4,8 +4,8 @@ version: 0.3.7 homepage: https://github.com/ekibun/flutter_qjs environment: - sdk: ">=3.0.0 <4.0.0" - flutter: ">=3.0.0" + sdk: ">=3.5.0 <4.0.0" + flutter: ">=3.24.0" dependencies: flutter: diff --git a/test/flutter_qjs_test.dart b/test/flutter_qjs_test.dart index 51e5bb6..68332a8 100644 --- a/test/flutter_qjs_test.dart +++ b/test/flutter_qjs_test.dart @@ -12,6 +12,7 @@ import 'dart:io'; import 'package:flutter_qjs/flutter_qjs.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_tools/src/base/io.dart'; +import 'package:flutter_tools/src/base/os.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/terminal.dart'; import 'package:flutter_tools/src/base/platform.dart'; @@ -81,9 +82,25 @@ void main() async { if (platform.isWindows) { final stdio = Stdio(); final vs = VisualStudio( + fileSystem: const LocalFileSystem(), + processManager: const LocalProcessManager(), + platform: platform, + logger: StdoutLogger( + terminal: AnsiTerminal( + stdio: stdio, + platform: platform, + ), + stdio: stdio, + outputPreferences: OutputPreferences( + wrapText: stdio.hasTerminal, + showColor: platform.stdoutSupportsAnsi, + stdio: stdio, + ), + ), + osUtils: OperatingSystemUtils( fileSystem: const LocalFileSystem(), - processManager: const LocalProcessManager(), platform: platform, + processManager: const LocalProcessManager(), logger: StdoutLogger( terminal: AnsiTerminal( stdio: stdio, @@ -95,7 +112,9 @@ void main() async { showColor: platform.stdoutSupportsAnsi, stdio: stdio, ), - )); + ), + ), + ); cmakePath = vs.cmakePath!; } final buildDir = './build';