34 lines
724 B
C++
34 lines
724 B
C++
#include <assert.h>
|
|
|
|
#include "smw/cx.h"
|
|
|
|
#include "jsapi.h"
|
|
|
|
namespace smw {
|
|
|
|
static JSContext* CONTEXT = nullptr;
|
|
|
|
void init_js_context(JSContext *cx) {
|
|
assert(!CONTEXT && "CONTEXT should only be initialized once");
|
|
CONTEXT = cx;
|
|
}
|
|
|
|
JSContext *get_js_context() {
|
|
assert(CONTEXT && "CONTEXT should be initialized");
|
|
return CONTEXT;
|
|
}
|
|
|
|
static JS::PersistentRooted<JSObject*> USER_MODULE;
|
|
|
|
void init_user_module(JSContext* cx, JSObject* user_module) {
|
|
assert(!USER_MODULE && "USER_MODULE should only be initialized once");
|
|
USER_MODULE.init(cx, user_module);
|
|
}
|
|
|
|
JSObject* get_user_module() {
|
|
assert(USER_MODULE && "USER_MODULE should be initialized");
|
|
return USER_MODULE;
|
|
}
|
|
|
|
} // namespace smw
|