public JSCustomClass(JSContextPtr context, string name, JSHandleObject globalObject) { Context = context; ClassDefinition = new JSClass(name); ClassPtr = new JSClassPtr(ClassDefinition, out ClassPin); GlobalObject = globalObject; SetConstructor(DefaultConstructor); }
static JSGlobalObject() { DefaultClassDefinition = new JSClass( "global", JSClassFlags.GLOBAL_FLAGS | JSClassFlags.NEW_RESOLVE ); // HACK: Lazy standard classes // DefaultClassDefinition.enumerate = (JSEnumerateOp)global_enumerate; // DefaultClassDefinition.resolve = (JSNewResolveOp)global_resolve; // We have to pin our JSClass (so everything it points to is retained) // and marshal it into a manually-allocated buffer that doesn't expire. // JSClass buffer needs to live as long as the global object, or longer. DefaultClass = new JSClassPtr(DefaultClassDefinition, out DefaultClassHandle); }
public void NewAssignmentFromObj() { var typeStructure = new TypeStructure { IsArray = false, IsSytemType = false, Name = "Person", TypeName = "PersonType" }; var jsType = new JSClass { ClassName = "Person" }; var jsCode = ((JSRenderble)DI.Get <IFromObjectAssignmentProperty>(typeStructure, jsType)).GetText(); Assert.AreEqual(jsCode, "/**\r\n * @type PersonType\r\n*/\r\nthis.Person = new PersonType();\r\nif (typeof dataObject.Person !== \"undefined\")\r\n{\r\n this.Person._loadFromObject(dataObject.Person);\r\n}\r\n"); }
static Runtime() { js_class_definition = new RuntimeClassDefinition(); js_class = js_class_definition.CreateClass(); }