+ JSObjectRef ArrayInstance(JSObjectMakeConstructor(context, Instance_, NULL));
+ JSObjectRef ArrayInstance_prototype(CYCastJSObject(context, CYGetProperty(context, ArrayInstance, prototype_s)));
+ CYSetProperty(context, cy, CYJSString("ArrayInstance_prototype"), ArrayInstance_prototype);
+ JSObjectRef Array_prototype(CYGetCachedObject(context, CYJSString("Array_prototype")));
+ JSObjectSetPrototype(context, ArrayInstance_prototype, Array_prototype);
+
+ JSObjectRef ObjectInstance(JSObjectMakeConstructor(context, Instance_, NULL));
+ JSObjectRef ObjectInstance_prototype(CYCastJSObject(context, CYGetProperty(context, ObjectInstance, prototype_s)));
+ CYSetProperty(context, cy, CYJSString("ObjectInstance_prototype"), ObjectInstance_prototype);
+ JSObjectRef Object_prototype(CYGetCachedObject(context, CYJSString("Object_prototype")));
+ JSObjectSetPrototype(context, ObjectInstance_prototype, Object_prototype);
+
+ JSObjectRef StringInstance(JSObjectMakeConstructor(context, Instance_, NULL));
+ JSObjectRef StringInstance_prototype(CYCastJSObject(context, CYGetProperty(context, StringInstance, prototype_s)));
+ CYSetProperty(context, cy, CYJSString("StringInstance_prototype"), StringInstance_prototype);
+ JSObjectRef String_prototype(CYGetCachedObject(context, CYJSString("String_prototype")));
+ JSObjectSetPrototype(context, StringInstance_prototype, String_prototype);
+