From 21a4e0bc8732028f5cebb1696503b4b8669edcfd Mon Sep 17 00:00:00 2001 From: Ronald Brill Date: Wed, 4 Jan 2023 19:03:35 +0100 Subject: [PATCH] patch from https://github.com/mozilla/rhino/pull/1287 --- src/org/mozilla/javascript/BoundFunction.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/org/mozilla/javascript/BoundFunction.java b/src/org/mozilla/javascript/BoundFunction.java index 65dd912e85..454c62cf1b 100644 --- a/src/org/mozilla/javascript/BoundFunction.java +++ b/src/org/mozilla/javascript/BoundFunction.java @@ -52,7 +52,15 @@ public BoundFunction( @Override public Object call(Context cx, Scriptable scope, Scriptable thisObj, Object[] extraArgs) { - Scriptable callThis = boundThis != null ? boundThis : ScriptRuntime.getTopCallScope(cx); + // Scriptable callThis = boundThis != null ? boundThis : ScriptRuntime.getTopCallScope(cx); + // see https://github.com/mozilla/rhino/pull/1287 + Scriptable callThis = boundThis; + if (callThis == null && ScriptRuntime.hasTopCall(cx)) { + callThis = ScriptRuntime.getTopCallScope(cx); + } + if (callThis == null) { + callThis = getTopLevelScope(scope); + } return targetFunction.call(cx, scope, callThis, concat(boundArgs, extraArgs)); }