public static IshtarObject *ToIshtarObject(string str, CallFrame frame = null, IshtarObject **node = null) { var arg = IshtarGC.AllocObject(TYPE_STRING.AsRuntimeClass(), node); var clazz = IshtarUnsafe.AsRef <RuntimeIshtarClass>(arg->clazz); arg->vtable[clazz.Field["!!value"].vtable_offset] = StringStorage.Intern(str); return(arg); }
public static void InitTable(Dictionary <string, RuntimeIshtarMethod> table) { new RuntimeIshtarMethod("@_println", Public | Static | Extern, ("val", TYPE_STRING)) .AsNative((delegate * < CallFrame, IshtarObject * *, IshtarObject * >) & FPrintLn) .AddInto(table, x => x.Name); new RuntimeIshtarMethod("@_readline", Public | Static | Extern, TYPE_STRING.AsClass()) .AsNative((delegate * < CallFrame, IshtarObject * *, IshtarObject * >) & FReadLine) .AddInto(table, x => x.Name); }