Bug 1398601 - Add js::IsJSMEnvironment to jsfriendapi draft
authorTed Campbell <tcampbell@mozilla.com>
Sun, 10 Sep 2017 14:22:32 -0400
changeset 662441 4665a8059df63b8dbf67b7389c8b74715eb67f74
parent 662043 fd87bb184e299fec695f69bd2977276c25719b98
child 662442 08519b444503a7d7a326872c0f264b862fa1cd4d
child 662513 8d85a9394144e7c24793cb760021f441d8da75a5
push id79085
push userbmo:tcampbell@mozilla.com
push dateMon, 11 Sep 2017 17:51:55 +0000
bugs1398601
milestone57.0a1
Bug 1398601 - Add js::IsJSMEnvironment to jsfriendapi MozReview-Commit-ID: K9ouXJ92N6u
js/src/builtin/Eval.cpp
js/src/jsfriendapi.h
--- 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