static void _AddToList (XBOX::VJSContext &inContext, const XBOX::VString &inConstructorName, XBOX::VJSObject &inConstructedObject) { if (inContext.GetGlobalObject().HasProperty(inConstructorName)) { XBOX::VJSObject workerObject = inContext.GetGlobalObject().GetPropertyAsObject(inConstructorName); if (workerObject.IsObject() && workerObject.HasProperty("list")) { XBOX::VJSValue value = workerObject.GetProperty("list"); if (value.IsArray()) { XBOX::VJSArray listArray(value); sLONG i; for (i = 0; i < listArray.GetLength(); i++) { value = listArray.GetValueAt(i); if (value.IsNull()) { listArray.SetValueAt(i, inConstructedObject); break; } } if (i == listArray.GetLength()) listArray.PushValue(inConstructedObject); } else { xbox_assert(false); } } else { xbox_assert(false); } } else { xbox_assert(false); } }
XBOX::VJSValue VJSStructuredClone::_ConstructObject (XBOX::VJSContext inContext, const XBOX::VString &inConstructorName, XBOX::VJSValue inArgument) { XBOX::VJSObject object = inContext.GetGlobalObject().GetPropertyAsObject(inConstructorName); std::vector<XBOX::VJSValue> arguments; XBOX::VJSValue value(inContext); arguments.push_back(inArgument); if (object.CallAsConstructor(&arguments, &object, NULL)) value.SetValueRef((JS4D::ObjectRef) object.GetObjectRef()); else value.SetUndefined(); return value; }