summaryrefslogtreecommitdiff
path: root/Base
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2021-10-07 11:36:44 +0200
committerAndreas Kling <kling@serenityos.org>2021-10-07 11:53:18 +0200
commit421845b0cd109d3532beb9dfc06e44169b846505 (patch)
tree0961ca3ebf822bc3782042fbf4af176457a8c6b6 /Base
parent96a67d24e9804143b8df2e2bbd6b20e1e6bda298 (diff)
downloadserenity-421845b0cd109d3532beb9dfc06e44169b846505.zip
LibJS: Taint variable environment chain after non-strict direct eval()
Since non-strict direct eval() can insert new bindings into a surrounding var scope, we cannot safely cache some assumptions about environment chain layout after eval() has taken place. Since eval() is rare, let's do what other engines do and simply deoptimize in its presence. This patch adds a new "permanently screwed" flag to JS::Environment that will be set on the entire variable environment chain upon non-strict direct eval().
Diffstat (limited to 'Base')
0 files changed, 0 insertions, 0 deletions