Reimplement static field initializer

* wrap initializer expr into virtual arrow function like instance field
* users can access super property in eval

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
This commit is contained in:
Seonghyun Kim 2021-01-29 16:46:33 +09:00 committed by Boram Bae
commit 109d199302
10 changed files with 48 additions and 131 deletions

View file

@ -89,7 +89,7 @@ InterpretedCodeBlock* ScriptParser::generateCodeBlockTreeFromASTWalker(Context*
if (scopeCtx->m_hasSuperOrNewTarget) {
InterpretedCodeBlock* c = codeBlock;
while (c) {
if (c->isKindOfFunction() && !c->isArrowFunctionExpression()) { // ThisEnvironment
if (c->isKindOfFunction() && (!c->isArrowFunctionExpression() || c->isOneExpressionOnlyVirtualArrowFunctionExpression())) { // ThisEnvironment
c->m_canAllocateEnvironmentOnStack = false;
break;
}