diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/bc.lua | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -125,9 +125,16 @@ local function bctargets(func) | |||
125 | end | 125 | end |
126 | 126 | ||
127 | -- Dump bytecode instructions of a function. | 127 | -- Dump bytecode instructions of a function. |
128 | local function bcdump(func, out) | 128 | local function bcdump(func, out, all) |
129 | if not out then out = stdout end | 129 | if not out then out = stdout end |
130 | local fi = funcinfo(func) | 130 | local fi = funcinfo(func) |
131 | if all and fi.children then | ||
132 | for n=-1,-1000000000,-1 do | ||
133 | local k = funck(func, n) | ||
134 | if not k then break end | ||
135 | if type(k) == "proto" then bcdump(k, out, true) end | ||
136 | end | ||
137 | end | ||
131 | out:write(format("-- BYTECODE -- %s-%d\n", fi.loc, fi.lastlinedefined)) | 138 | out:write(format("-- BYTECODE -- %s-%d\n", fi.loc, fi.lastlinedefined)) |
132 | local target = bctargets(func) | 139 | local target = bctargets(func) |
133 | for pc=1,1000000000 do | 140 | for pc=1,1000000000 do |