Index: src/pmc/parrotinterpreter.pmc =================================================================== --- src/pmc/parrotinterpreter.pmc (revision 43226) +++ src/pmc/parrotinterpreter.pmc (working copy) @@ -441,6 +441,7 @@ "outer"; "" ... same for outer level 1 "outer"; ""; level ... same for outer "globals" ... return global stash + "iglobals" ... return a string-indexed hash of iglobals =cut @@ -562,6 +563,20 @@ return pmc_new(interp, enum_class_Hash); } + name = CONST_STRING(interp, "iglobals"); + + if (Parrot_str_equal(interp, item, name)) { + PMC *ig_hash = pmc_new(interp, enum_class_Hash); + PMC *one = pmc_new(interp, enum_class_Integer); + + VTABLE_set_pmc_keyed_str(interp, ig_hash, CONST_STRING(interp, "classname_hash"), interp->class_hash); + + VTABLE_set_integer_native(interp, one, 1); + VTABLE_setprop(interp, ig_hash, CONST_STRING(interp, "_ro"), one); + + return ig_hash; + } + Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_ATTRIB_NOT_FOUND, "No such item %Ss", item); }