diff options
Diffstat (limited to 'libs/lua/test/readonly.lua')
-rw-r--r-- | libs/lua/test/readonly.lua | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libs/lua/test/readonly.lua b/libs/lua/test/readonly.lua new file mode 100644 index 0000000..85c0b4e --- /dev/null +++ b/libs/lua/test/readonly.lua | |||
@@ -0,0 +1,12 @@ | |||
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' | ||