Skip to content

duk_set_global_object()

1.0.0 thread stack sandbox

プロトタイプ

c
void duk_set_global_object(duk_context *ctx);

スタック

| ... | new_global | -> | ... |

要約

現在のコンテキストのグローバルオブジェクトを、バリュースタックの一番上にあるオブジェクトで置き換えます。値がオブジェクトでない場合は、エラーがスローされます。

この操作は、他のコンテキストのグローバルオブジェクトには影響しないことに注意してください。たとえ、この時点まで同じグローバル環境を共有していたとしてもです。他のコンテキストに変更を継承するには、duk_push_thread() を呼び出す前に、まずグローバルオブジェクトを置き換えます。

変更後の詳細な動作については、テストケース test-set-global-object.c を参照してください。

c
/* Build a global object with a subset of bindings. */
duk_eval_string(ctx,
    "({\n"
    "    print: this.print,\n"
    "    JSON: this.JSON\n"
    "})\n");

/* Replace global object. */
duk_set_global_object(ctx);