From ee6fb51db65d3bdde298bd097b5a39a3d6bf33d4 Mon Sep 17 00:00:00 2001 From: Luke Wilde Date: Fri, 22 Apr 2022 19:21:02 +0100 Subject: LibJS: Add a couple of missing spec steps to PerformEval I missed these in 34f902fb524808b308efe4568ff5a026d2cb4884. --- Userland/Libraries/LibJS/Runtime/AbstractOperations.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'Userland') diff --git a/Userland/Libraries/LibJS/Runtime/AbstractOperations.cpp b/Userland/Libraries/LibJS/Runtime/AbstractOperations.cpp index d360130572..c151aec699 100644 --- a/Userland/Libraries/LibJS/Runtime/AbstractOperations.cpp +++ b/Userland/Libraries/LibJS/Runtime/AbstractOperations.cpp @@ -579,9 +579,14 @@ ThrowCompletionOr perform_eval(GlobalObject& global_object, Value x, Call return vm.throw_completion(global_object, error.to_string()); } - auto strict_eval = strict_caller == CallerMode::Strict; - if (program->is_strict_mode()) + bool strict_eval = false; + + // 12. If strictCaller is true, let strictEval be true. + if (strict_caller == CallerMode::Strict) strict_eval = true; + // 13. Else, let strictEval be IsStrict of script. + else + strict_eval = program->is_strict_mode(); // 14. Let runningContext be the running execution context. // 15. NOTE: If direct is true, runningContext will be the execution context that performed the direct eval. If direct is false, runningContext will be the execution context for the invocation of the eval function. -- cgit v1.2.3