1. reduce ByteCode size with remove loc

2. store ByteCodeLOC in ByteCodeBlock & lazy store loc
3. optimize builtin Array.prototype.splice
4. optimize Value::toNumberSlowCase
5. optimize arguments object

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
This commit is contained in:
seonghyun kim 2017-02-02 13:27:23 +09:00
commit ef9e0ed699
11 changed files with 108 additions and 38 deletions

View file

@ -19,7 +19,7 @@ Value Script::execute(ExecutionState& state, bool isEvalMode, bool needNewEnv, b
ASSERT(programNode && programNode->type() == ASTNodeType::Program);
ByteCodeGenerator g;
g.generateByteCode(state.context(), m_topCodeBlock, programNode, isEvalMode, isOnGlobal);
m_topCodeBlock->m_byteCodeBlock = g.generateByteCode(state.context(), m_topCodeBlock, programNode, isEvalMode, isOnGlobal);
delete m_topCodeBlock->m_cachedASTNode;
m_topCodeBlock->m_cachedASTNode = nullptr;
@ -82,7 +82,7 @@ Value Script::executeLocal(ExecutionState& state, bool isEvalMode, bool needNewR
ASSERT(programNode && programNode->type() == ASTNodeType::Program);
ByteCodeGenerator g;
g.generateByteCode(state.context(), m_topCodeBlock, programNode, isEvalMode);
m_topCodeBlock->m_byteCodeBlock = g.generateByteCode(state.context(), m_topCodeBlock, programNode, isEvalMode);
delete m_topCodeBlock->m_cachedASTNode;
m_topCodeBlock->m_cachedASTNode = nullptr;