@@ -1132,13 +1132,6 @@ fn test_inspect_stack() -> Result<()> {
11321132 } ) ?;
11331133 lua. globals ( ) . set ( "logline" , logline) ?;
11341134
1135- let stack_info = lua. create_function ( |lua, ( ) | {
1136- let debug = lua. inspect_stack ( 1 ) . unwrap ( ) ; // caller
1137- let stack_info = debug. stack ( ) ;
1138- Ok ( format ! ( "{stack_info:?}" ) )
1139- } ) ?;
1140- lua. globals ( ) . set ( "stack_info" , stack_info) ?;
1141-
11421135 lua. load (
11431136 r#"
11441137 local function foo()
@@ -1148,21 +1141,45 @@ fn test_inspect_stack() -> Result<()> {
11481141 local function bar()
11491142 return foo()
11501143 end
1144+
1145+ assert(foo() == '[string "chunk"]:3 hello')
1146+ assert(bar() == '[string "chunk"]:3 hello')
1147+ assert(logline("world") == '[string "chunk"]:12 world')
1148+ "# ,
1149+ )
1150+ . set_name ( "chunk" )
1151+ . exec ( ) ?;
1152+
1153+ let stack_info = lua. create_function ( |lua, ( ) | {
1154+ let debug = lua. inspect_stack ( 1 ) . unwrap ( ) ; // caller
1155+ let stack_info = debug. stack ( ) ;
1156+ Ok ( format ! ( "{stack_info:?}" ) )
1157+ } ) ?;
1158+ lua. globals ( ) . set ( "stack_info" , stack_info) ?;
1159+
1160+ #[ cfg( any( feature = "lua54" , feature = "lua53" , feature = "lua52" , feature = "luau" ) ) ]
1161+ lua. load (
1162+ r#"
11511163 local stack_info = stack_info
11521164 local function baz(a, b, c, ...)
11531165 return stack_info()
11541166 end
1167+ assert(baz() == 'DebugStack { num_ups: 1, num_params: 3, is_vararg: true }')
1168+ "# ,
1169+ )
1170+ . exec ( ) ?;
11551171
1156- assert(foo() == '[string "chunk"]:3 hello')
1157- assert(bar() == '[string "chunk"]:3 hello')
1158- assert(logline("world") == '[string "chunk"]:16 world')
1159- assert(
1160- baz() == 'DebugStack { num_ups: 1, num_params: 3, is_vararg: true }' or
1161- baz() == 'DebugStack { num_ups: 1 }'
1162- )
1172+ // LuaJIT does not pass this test for some reason
1173+ #[ cfg( feature = "lua51" ) ]
1174+ lua. load (
1175+ r#"
1176+ local stack_info = stack_info
1177+ local function baz(a, b, c, ...)
1178+ return stack_info()
1179+ end
1180+ assert(baz() == 'DebugStack { num_ups: 1 }')
11631181 "# ,
11641182 )
1165- . set_name ( "chunk" )
11661183 . exec ( ) ?;
11671184
11681185 Ok ( ( ) )
0 commit comments