diff src/luan/lib/init.luan @ 149:f99fd64291b3

change load() to take env instead of using global git-svn-id: https://luan-java.googlecode.com/svn/trunk@150 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Mon, 16 Jun 2014 05:47:54 +0000
parents 90f38a5d0e0a
children f35c50027985
line wrap: on
line diff
--- a/src/luan/lib/init.luan	Mon Jun 16 04:29:33 2014 +0000
+++ b/src/luan/lib/init.luan	Mon Jun 16 05:47:54 2014 +0000
@@ -50,14 +50,23 @@
 	end
 end
 
+function Table.clone(tbl)
+	local new = {}
+	for k,v in _G.pairs(tbl) do
+		new[k] = v
+	end
+	return new
+end
+
 function Debug.debug(prompt)
 	prompt = prompt or "luan_debug> "
 	local function console()
 		return Io.read_console_line(prompt)
 	end
+	local env = Table.clone(_G)
 	for line in console do
 		try
-			local fn = _G.load(line,"stdin",true,true)
+			local fn = _G.load(line,"stdin",env,true)
 			Debug.print_if_something( fn() )
 		catch e do
 			_G.print(e)