define test_call_fn_stack_failure { a = 1 b = 2 x[1] = 0 if ("return_noval" in $test_call_fn_stack_failure) { delete $test_call_fn_stack_failure["return_noval"] return } if ("no_arg" in $test_call_fn_stack_failure) { delete $test_call_fn_stack_failure["no_arg"] c = $1 } if ("undefined" in $test_call_fn_stack_failure) { delete $test_call_fn_stack_failure["undefined"] c = undefined_var } if ("array_scalar" in $test_call_fn_stack_failure) { delete $test_call_fn_stack_failure["array_scalar"] c = x + a } c = $test_call_fn_stack_failure["no_such_index"] return 0 } define test_call_fn_stack_failure_1 { a[1] = 2 a[2] = 1 return test_call_fn_stack_failure() } define test_call_fn_stack_failure_reset { $test_call_fn_stack_failure["return_noval"] = 0 $test_call_fn_stack_failure["no_arg"] = 0 $test_call_fn_stack_failure["array_scalar"] = 0 $test_call_fn_stack_failure["undefined"] = 0 $test_call_fn_stack_failure["reset"] = 0 } define test_call_fn_stack_failure_0 { while (1) { r = dialog("Perform failure?", "Yes", "No", "Reset") if (r == 1) test_call_fn_stack_failure_1() else if (r == 2) break else if (r == 3) test_call_fn_stack_failure_reset() } } $test_call_fn_stack_failure[""] = 0 if (!("reset" in $test_call_fn_stack_failure)) test_call_fn_stack_failure_reset() test_call_fn_stack_failure_0()