1. reduce size of ByteCodeBlock, CodeBlock classes

2. optimize function calling performance
 - change local variable binding order (this, function name first)
 - revise opcode table init method
3. remove OpcodeTable::m_reverseTable
4. use shared thrower JSGetterSetter instance for arguments, function object
5. revise Function.prototype.toString for to print function's source

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
This commit is contained in:
seonghyun kim 2017-03-15 15:05:19 +09:00
commit b1cc608191
29 changed files with 378 additions and 359 deletions

View file

@ -5682,8 +5682,9 @@ public:
this->scopeContexts.back()->insertName(id->name());
pushScopeContext(params, id->name());
extractNamesFromFunctionParams(params);
scopeContexts.back()->insertName(id->name());
extractNamesFromFunctionParams(params);
bool previousStrict = this->context->strict;
BlockStatementNode* body = this->parseFunctionSourceElements();
@ -5748,11 +5749,13 @@ public:
AtomicString fnName;
if (id)
fnName = id->name();
pushScopeContext(params, fnName);
extractNamesFromFunctionParams(params);
if (id)
scopeContexts.back()->insertName(fnName);
extractNamesFromFunctionParams(params);
bool previousStrict = this->context->strict;
BlockStatementNode* body = this->parseFunctionSourceElements();
if (this->context->strict && firstRestricted) {