diff U5 lua-5.1.4/src/lparser.c lua-5.1.4jh/src/lparser.c --- lua-5.1.4/src/lparser.c Fri Dec 28 15:32:22 2007 +++ lua-5.1.4jh/src/lparser.c Thu Jan 14 17:33:52 2010 @@ -451,13 +451,29 @@ checkname(ls, &key); } else /* ls->t.token == '[' */ yindex(ls, &key); cc->nh++; + +#if defined(JH_LUA_SETINIT) + if (ls->t.token == '=') + { + luaX_next(ls); + rkkey = luaK_exp2RK(fs, &key); + expr(ls, &val); + } + else + { + rkkey = luaK_exp2RK(fs, &key); + init_exp(&val, VTRUE, 0); + } +#else checknext(ls, '='); rkkey = luaK_exp2RK(fs, &key); expr(ls, &val); +#endif + luaK_codeABC(fs, OP_SETTABLE, cc->t->u.s.info, rkkey, luaK_exp2RK(fs, &val)); fs->freereg = reg; /* free registers */ }

AltStyle によって変換されたページ (->オリジナル) /