/*=== top: 2 top: 3 top: 2 top: 3 top: 2 value: 123 top: 2 value: 234 top: 2 ===*/ void test(duk_context *ctx) { duk_context *ctx1; duk_context *ctx2; duk_push_thread(ctx); ctx1 = duk_get_context(ctx, -1); duk_push_thread(ctx); ctx2 = duk_get_context(ctx, -1); printf("top: %d\n", duk_get_top(ctx)); duk_push_thread_stash(ctx, ctx1); printf("top: %d\n", duk_get_top(ctx)); duk_push_int(ctx, 123); duk_put_prop_string(ctx, -2, "myvalue"); duk_pop(ctx); printf("top: %d\n", duk_get_top(ctx)); duk_push_thread_stash(ctx, ctx2); printf("top: %d\n", duk_get_top(ctx)); duk_push_int(ctx, 234); duk_put_prop_string(ctx, -2, "myvalue"); duk_pop(ctx); printf("top: %d\n", duk_get_top(ctx)); duk_push_thread_stash(ctx, ctx1); duk_get_prop_string(ctx, -1, "myvalue"); printf("value: %d\n", duk_get_int(ctx, -1)); duk_pop(ctx); duk_pop(ctx); printf("top: %d\n", duk_get_top(ctx)); duk_push_thread_stash(ctx, ctx2); duk_get_prop_string(ctx, -1, "myvalue"); printf("value: %d\n", duk_get_int(ctx, -1)); duk_pop(ctx); duk_pop(ctx); printf("top: %d\n", duk_get_top(ctx)); }