jsx 1.0.0 copy "jsx: ^1.0.0" to clipboard
jsx: ^1.0.0 copied to clipboard

JavaScriptCore for Flutter. The plugin provides the ability to evaluate JavaScript programs from within dart.

jsx #

JavaScriptCore for Flutter. The plugin provides the ability to evaluate JavaScript programs from within dart.

Android #

# do nothing

iOS #

# do nothing

Flutter #

// js
JSValueRef _console_log(
  JSContextRef ctx,
  JSObjectRef function,
  JSObjectRef thisObject,
  int argumentCount,
  Pointer<JSValueRef> arguments,
  Pointer<JSValueRef> exception,
) {
  return convertJSObjectCallAsFunctionCallback(
    ctx,
    function,
    thisObject,
    argumentCount,
    arguments,
    exception,
    (JSContext context, JSObject function, JSObject thisObject, List<JSValue> arguments, JSException exception) {
      if (kDebugMode) {
        print('function: ${function.getProperty('name').string}');
        print('argumentCount: $argumentCount');
      }
      for (JSValue argument in arguments) {
        if (kDebugMode) {
          print('argument: ${argument.string}');
        }
      }
      return JSValue.makeNull(context);
    },
  );
}

void console_log() {
  final JSGlobalContext globalContext = JSGlobalContext.create();
  final JSClassDefinition definition = JSClassDefinition.create(
    className: '_flutter_js_inject_console',
    staticFunctions: <JSStaticFunction>[
      JSStaticFunction(
        'log',
        callAsFunction: Pointer.fromFunction(_console_log),
      ),
    ],
  );
  final JSClass clazz = JSClass.create(definition);
  definition.release();
  final JSObject console = JSObject.make(globalContext, clazz: clazz);
  clazz.release();
  globalContext.globalObject.setProperty('console', console.value);
  globalContext.evaluate('console.log("1, 2, 3");');
  globalContext.release();
}
// js_vm
void console_log() {
  final JSVm vm = JSVm.jsc();
  vm.evaluate('console.log(1, 2, 3)');
  vm.dispose();
}
0
likes
150
points
60
downloads

Publisher

verified publisherrxreader.com

Weekly Downloads

JavaScriptCore for Flutter. The plugin provides the ability to evaluate JavaScript programs from within dart.

Repository (GitHub)

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

ffi, flutter

More

Packages that depend on jsx