X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/6fe7ccc865dc7d7541b93c5bcaf6368d2c98a174..ed1e77d3adeb83d26fd1dfb16dd84cabdcefd250:/runtime/StrictEvalActivation.cpp diff --git a/runtime/StrictEvalActivation.cpp b/runtime/StrictEvalActivation.cpp index fbd9d5f..4260e10 100644 --- a/runtime/StrictEvalActivation.cpp +++ b/runtime/StrictEvalActivation.cpp @@ -26,24 +26,33 @@ #include "config.h" #include "StrictEvalActivation.h" +#include "JSGlobalObject.h" +#include "JSCInlines.h" + namespace JSC { -ASSERT_HAS_TRIVIAL_DESTRUCTOR(StrictEvalActivation); +STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(StrictEvalActivation); -const ClassInfo StrictEvalActivation::s_info = { "Object", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(StrictEvalActivation) }; +const ClassInfo StrictEvalActivation::s_info = { "Object", &Base::s_info, 0, CREATE_METHOD_TABLE(StrictEvalActivation) }; -StrictEvalActivation::StrictEvalActivation(ExecState* exec) - : JSNonFinalObject(exec->globalData(), exec->globalData().strictEvalActivationStructure.get()) +StrictEvalActivation::StrictEvalActivation(ExecState* exec, JSScope* currentScope) + : Base( + exec->vm(), + exec->lexicalGlobalObject()->strictEvalActivationStructure(), + currentScope + ) { } -bool StrictEvalActivation::deleteProperty(JSCell*, ExecState*, const Identifier&) +bool StrictEvalActivation::deleteProperty(JSCell*, ExecState*, PropertyName) { return false; } -JSObject* StrictEvalActivation::toThisObject(JSCell*, ExecState* exec) +JSValue StrictEvalActivation::toThis(JSCell*, ExecState* exec, ECMAMode ecmaMode) { + if (ecmaMode == StrictMode) + return jsUndefined(); return exec->globalThisValue(); }