- CYSetProperty(context, cycript, CYJSString("Type"), JSObjectMakeConstructor(context, CYPrivate<Type_privateData>::Class_, &Type_new));
+
+ JSObjectRef Type(JSObjectMakeConstructor(context, CYPrivate<Type_privateData>::Class_, &Type_new));
+ JSObjectRef Type_prototype(CYCastJSObject(context, CYGetProperty(context, Type, prototype_s)));
+ CYSetPrototype(context, Type_prototype, Function_prototype);
+ CYSetProperty(context, cy, CYJSString("Type_prototype"), Type_prototype);
+ CYSetProperty(context, cycript, CYJSString("Type"), Type);
+
+ JSObjectRef Character_prototype(JSObjectMake(context, NULL, NULL));
+ CYSetPrototype(context, Character_prototype, String_prototype);
+ CYSetProperty(context, cy, CYJSString("Character_prototype"), Character_prototype);
+ CYSetProperty(context, Character_prototype, CYJSString("valueOf"), _jsccall(JSEvaluateScript, context, CYJSString("(function(){return this.charCodeAt(0);})"), NULL, NULL, 0));