MCPcopy Create free account
hub / github.com/MaaXYZ/MaaFramework / get

Method get

source/binding/NodeJS/src/apis/ext.h:142–174  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

140 }
141
142 static ExtContext* get(maajs::EnvType env)
143 {
144#ifdef MAA_JS_IMPL_IS_NODEJS
145 auto ptr = env.GetInstanceData<ExtContext>();
146 if (!ptr) {
147 ptr = new ExtContext { };
148 env.SetInstanceData(ptr);
149 }
150 return ptr;
151#endif
152
153#ifdef MAA_JS_IMPL_IS_QUICKJS
154 auto global = env.Global();
155 auto ctx = global["__MAA_JS_EXT_CTX"].AsValue();
156 if (ctx.IsUndefined()) {
157 auto ptr = new ExtContext;
158 global["__MAA_JS_EXT_CTX"] = { env, maajs::NativePointerHolder::make(env, ptr) };
159 return ptr;
160 }
161 else {
162 return maajs::NativePointerHolder::take<ExtContext>(env, ctx.peek());
163 }
164 /*
165 auto ptr = static_cast<ExtContext*>(JS_GetContextOpaque(env));
166 if (!ptr) {
167 ptr = new ExtContext {};
168 JS_SetContextOpaque(env, ptr);
169 JS_AddRuntimeFinalizer(env.runtime, +[](JSRuntime*, void* ptr) { delete static_cast<ExtContext*>(ptr); }, ptr);
170 }
171 return ptr;
172 */
173#endif
174 }
175};

Callers

nothing calls this directly

Calls 3

GlobalMethod · 0.80
AsValueMethod · 0.80
IsUndefinedMethod · 0.80

Tested by

no test coverage detected