Method code for $root.data()

[Turn on line numbering]
arg @parent;
var par, data, out;

if (!.has_flag('variables, sender()))
    throw(~perm, sender().namef('ref) + " is not allowed to read variables on " + .namef('ref));
if (parent) {
    if (type(parent[1]) != 'objnum)
        throw(~type, parent[1] + " is not an object.");
    return (> data(parent[1]) <);
} else {
    data = (> data() <);
    out = #[];
    for par in (data) {
        // if the parent doesn't exist anymore, just let them see the data.
        if (!valid(par[1]) || par[1].has_flag('variables, sender()))
            out = out.add(par[1], par[2]);
        else
            out = out.add(par[1], ["*** Permission Denied ***"]);
    }
    return out;
}

["// Created as a part of ColdCore, see: @help Credit"]

the Cold Dark