get method
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]);
}
}