Bug 1398601 - Add js::IsJSMEnvironment to jsfriendapi
MozReview-Commit-ID: K9ouXJ92N6u
--- a/js/src/builtin/Eval.cpp
+++ b/js/src/builtin/Eval.cpp
@@ -531,8 +531,14 @@ js::GetJSMEnvironmentOfScriptedCaller(JS
MOZ_RELEASE_ASSERT(!iter.isWasm());
RootedObject env(cx, iter.environmentChain(cx));
while (env && !env->is<NonSyntacticVariablesObject>())
env = env->enclosingEnvironment();
return env;
}
+
+JS_FRIEND_API(bool)
+js::IsJSMEnvironment(JSObject* obj)
+{
+ return obj->is<NonSyntacticVariablesObject>();
+}
--- a/js/src/jsfriendapi.h
+++ b/js/src/jsfriendapi.h
@@ -2893,16 +2893,19 @@ extern JS_FRIEND_API(JSObject*)
NewJSMEnvironment(JSContext* cx);
extern JS_FRIEND_API(bool)
ExecuteInJSMEnvironment(JSContext* cx, JS::HandleScript script, JS::HandleObject nsvo);
extern JS_FRIEND_API(JSObject*)
GetJSMEnvironmentOfScriptedCaller(JSContext* cx);
+extern JS_FRIEND_API(bool)
+IsJSMEnvironment(JSObject* obj);
+
#if defined(XP_WIN) && defined(_WIN64)
// Parameters use void* types to avoid #including windows.h. The return value of
// this function is returned from the exception handler.
typedef long
(*JitExceptionHandler)(void* exceptionRecord, // PEXECTION_RECORD
void* context); // PCONTEXT