static void JumpStmt_asm(KonohaContext *kctx, kStmt *stmt, int shift, int espidx) { SugarSyntax *syn = stmt->syn; kStmt *jump = (kStmt*)kStmt_getObject(kctx, stmt, syn->keyword, NULL); DBG_ASSERT(jump != NULL); DBG_ASSERT(IS_Stmt(jump)); kBasicBlock* lbJUMP = (kBasicBlock*)KLIB kObject_getObject(kctx, jump, syn->keyword, NULL); DBG_ASSERT(lbJUMP != NULL); DBG_ASSERT(IS_BasicBlock(lbJUMP)); ASM_JMP(kctx, lbJUMP); }
static KMETHOD KMethodFunc_ObjectPrototypeGetter(KonohaContext *kctx, KonohaStack *sfp) { kMethod *mtd = sfp[K_MTDIDX].calledMethod; ksymbol_t key = (ksymbol_t)mtd->delta; KReturn(KLIB kObject_getObject(kctx, sfp[0].asObject, key, sfp[K_RTNIDX].asObject)); }