4
property propNotDefined;
7
object template "name";
14
/* get the global symbol table */
15
gsym = t3GetGlobalSymbols();
17
/* create a table for mapping property ID's to names */
18
proptab_ = new LookupTable(
19
gsym.getBucketCount(), gsym.getEntryCount());
22
gsym.forEachAssoc(new function(key, val)
25
* if it's a property, add it to the property lookup table
26
* (the property ID is the key, and the name is the value,
27
* so it provides the reverse of the system global symbol
30
if (dataType(val) == TypeProp)
40
/* look up the name in our property ID mapping table */
41
name = proptab_[prop];
43
/* if it's defined, return it; otherwise, provide a default name */
44
return (name != nil ? name : '<undefined>');
49
propNotDefined(prop, [args])
53
"Undefined: <<name>>.<<symtab.getPropName(prop)>>(";
55
foreach(local x in args)
58
* show a comma after the previous arg, if there was a
63
/* it's not the first, so there's a previous */
70
/* the next one won't be the first, so clear the flag */
78
a(x) { "This is obj1.a(<<x>>)\n"; }
79
b(x, y) { "This is obj1.b(<<x>>, <<y>>)\n"; }
84
a(x) { "This is obj2.a(<<x>>)\n"; }