| 1 | -- make global variables readonly |
| 2 | |
| 3 | local f=function (t,i) error("cannot redefine global variable `"..i.."'",2) end |
| 4 | local g={} |
| 5 | local G=getfenv() |
| 6 | setmetatable(g,{__index=G,__newindex=f}) |
| 7 | setfenv(1,g) |
| 8 | |
| 9 | -- an example |
| 10 | rawset(g,"x",3) |
| 11 | x=2 |
| 12 | y=1 -- cannot redefine `y' |