get method

dynamic get(
  1. IOJsScript script
)

Implementation

dynamic get(IOJsScript script) {
  switch (type) {
    case ARG_TYPE_INT32:
    case ARG_TYPE_INT64:
      return intValue;
    case ARG_TYPE_DOUBLE:
      return doubleValue;
    case ARG_TYPE_BOOL:
      return intValue != 0;
    case ARG_TYPE_STRING:
      return ptrValue.cast<Utf8>().toDartString();
    case ARG_TYPE_JS_STRING:
      var ptr = binder.toStringPtr(script._context, ptrValue);
      String ret = ptr.toDartString();
      binder.freeStringPtr(script._context, ptr);
      return ret;
    case ARG_TYPE_JS_VALUE:
      var ptr = binder.retainValue(script._context, ptrValue);
      if (ptr.ref.type == ARG_TYPE_MANAGED_VALUE) {
        return IOJsValue._js(script, ptr.ref.ptrValue);
      } else {
        return ptr.ref.get(script);
      }
    case ARG_TYPE_DART_CLASS: {
      var classInfo = script._classList[intValue];
      return IOJsValue._class(script, ptrValue, classInfo.clazz.type);
    }
    case ARG_TYPE_DART_OBJECT:
      return IOJsValue._instance(script, ptrValue, script._instances[ptrValue]);
  }
}