JavascriptCoreRuntime constructor

JavascriptCoreRuntime()

Implementation

JavascriptCoreRuntime() {
  _contextGroup = jSContextGroupCreate();
  _globalContext = jSGlobalContextCreateInGroup(_contextGroup, nullptr);
  _globalObject = jSContextGetGlobalObject(_globalContext);

  context = JSContext(_globalContext);

  _sendMessageDartFunc = _sendMessage;

  Pointer<Utf8> funcNameCString = 'sendMessage'.toNativeUtf8();
  var functionObject = jSObjectMakeFunctionWithCallback(
      _globalContext,
      jSStringCreateWithUTF8CString(funcNameCString),
      Pointer.fromFunction(sendMessageBridgeFunction));
  jSObjectSetProperty(
      _globalContext,
      _globalObject,
      jSStringCreateWithUTF8CString(funcNameCString),
      functionObject,
      jsObject.JSPropertyAttributes.kJSPropertyAttributeNone,
      nullptr);
  calloc.free(funcNameCString);

  init();
}