IOJsBuffer constructor

IOJsBuffer(
  1. IOJsScript script,
  2. int length
)

Implementation

IOJsBuffer(this.script, int length) : super(length) {
  memory = malloc.allocate(length);

  script._arguments[0].setInt(length);
  script._arguments[1].type = ARG_TYPE_RAW_POINTER;
  script._arguments[1].ptrValue = memory;
  value = script._action(JS_ACTION_NEW_ARRAYBUFFER, 2, block: (results, len) {
    if (len == 1 && results[0].type == ARG_TYPE_RAW_POINTER) {
      Pointer rawPtr = results[0].ptrValue;
      var ptr = binder.retainValue(script._context, rawPtr);
      return IOJsValue._js(script, ptr.ref.ptrValue);
    } else {
      throw Exception("Wrong result");
    }
  });
}