Changeset View
Changeset View
Standalone View
Standalone View
source/simulation2/serialization/StdDeserializer.cpp
Show First 20 Lines • Show All 276 Lines • ▼ Show 20 Lines | case SCRIPT_TYPE_OBJECT_NUMBER: | ||||
JS::RootedObject ctorobj(rq.cx); | JS::RootedObject ctorobj(rq.cx); | ||||
if (!JS_GetClassObject(rq.cx, JSProto_Number, &ctorobj)) | if (!JS_GetClassObject(rq.cx, JSProto_Number, &ctorobj)) | ||||
throw PSERROR_Deserialize_ScriptError("JS_GetClassObject failed"); | throw PSERROR_Deserialize_ScriptError("JS_GetClassObject failed"); | ||||
JS::RootedValue protoval(rq.cx, JS::ObjectOrNullValue(ctorobj)); | JS::RootedValue protoval(rq.cx, JS::ObjectOrNullValue(ctorobj)); | ||||
JS::RootedObject obj(rq.cx); | JS::RootedObject obj(rq.cx); | ||||
if (!JS::Construct(rq.cx, protoval, JS::HandleValueArray(val), &obj)) | if (!JS::Construct(rq.cx, protoval, JS::HandleValueArray(val), &obj)) | ||||
throw PSERROR_Deserialize_ScriptError("JS_New failed"); | throw PSERROR_Deserialize_ScriptError("JS::Construct failed"); | ||||
AddScriptBackref(obj); | AddScriptBackref(obj); | ||||
return JS::ObjectValue(*obj); | return JS::ObjectValue(*obj); | ||||
} | } | ||||
case SCRIPT_TYPE_OBJECT_STRING: | case SCRIPT_TYPE_OBJECT_STRING: | ||||
{ | { | ||||
JS::RootedString str(rq.cx); | JS::RootedString str(rq.cx); | ||||
ScriptString("value", &str); | ScriptString("value", &str); | ||||
if (!str) | if (!str) | ||||
throw PSERROR_Deserialize_ScriptError(); | throw PSERROR_Deserialize_ScriptError(); | ||||
JS::RootedValue val(rq.cx, JS::StringValue(str)); | JS::RootedValue val(rq.cx, JS::StringValue(str)); | ||||
JS::RootedObject ctorobj(rq.cx); | JS::RootedObject ctorobj(rq.cx); | ||||
if (!JS_GetClassObject(rq.cx, JSProto_String, &ctorobj)) | if (!JS_GetClassObject(rq.cx, JSProto_String, &ctorobj)) | ||||
throw PSERROR_Deserialize_ScriptError("JS_GetClassObject failed"); | throw PSERROR_Deserialize_ScriptError("JS_GetClassObject failed"); | ||||
JS::RootedValue protoval(rq.cx, JS::ObjectOrNullValue(ctorobj)); | JS::RootedValue protoval(rq.cx, JS::ObjectOrNullValue(ctorobj)); | ||||
JS::RootedObject obj(rq.cx); | JS::RootedObject obj(rq.cx); | ||||
if (!JS::Construct(rq.cx, protoval, JS::HandleValueArray(val), &obj)) | if (!JS::Construct(rq.cx, protoval, JS::HandleValueArray(val), &obj)) | ||||
throw PSERROR_Deserialize_ScriptError("JS_New failed"); | throw PSERROR_Deserialize_ScriptError("JS::Construct failed"); | ||||
AddScriptBackref(obj); | AddScriptBackref(obj); | ||||
return JS::ObjectValue(*obj); | return JS::ObjectValue(*obj); | ||||
} | } | ||||
case SCRIPT_TYPE_OBJECT_BOOLEAN: | case SCRIPT_TYPE_OBJECT_BOOLEAN: | ||||
{ | { | ||||
bool value; | bool value; | ||||
Bool("value", value); | Bool("value", value); | ||||
JS::RootedValue val(rq.cx, JS::BooleanValue(value)); | JS::RootedValue val(rq.cx, JS::BooleanValue(value)); | ||||
JS::RootedObject ctorobj(rq.cx); | JS::RootedObject ctorobj(rq.cx); | ||||
if (!JS_GetClassObject(rq.cx, JSProto_Boolean, &ctorobj)) | if (!JS_GetClassObject(rq.cx, JSProto_Boolean, &ctorobj)) | ||||
throw PSERROR_Deserialize_ScriptError("JS_GetClassObject failed"); | throw PSERROR_Deserialize_ScriptError("JS_GetClassObject failed"); | ||||
JS::RootedValue protoval(rq.cx, JS::ObjectOrNullValue(ctorobj)); | JS::RootedValue protoval(rq.cx, JS::ObjectOrNullValue(ctorobj)); | ||||
JS::RootedObject obj(rq.cx); | JS::RootedObject obj(rq.cx); | ||||
if (!JS::Construct(rq.cx, protoval, JS::HandleValueArray(val), &obj)) | if (!JS::Construct(rq.cx, protoval, JS::HandleValueArray(val), &obj)) | ||||
throw PSERROR_Deserialize_ScriptError("JS_New failed"); | throw PSERROR_Deserialize_ScriptError("JS::Construct failed"); | ||||
AddScriptBackref(obj); | AddScriptBackref(obj); | ||||
return JS::ObjectValue(*obj); | return JS::ObjectValue(*obj); | ||||
} | } | ||||
case SCRIPT_TYPE_TYPED_ARRAY: | case SCRIPT_TYPE_TYPED_ARRAY: | ||||
{ | { | ||||
u8 arrayType; | u8 arrayType; | ||||
u32 byteOffset, length; | u32 byteOffset, length; | ||||
NumberU8_Unbounded("array type", arrayType); | NumberU8_Unbounded("array type", arrayType); | ||||
▲ Show 20 Lines • Show All 171 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator