mirror of
https://github.com/Samsung/escargot.git
synced 2026-06-29 10:02:14 +00:00
Implement ReloadableString
* turn off ALWAYS_INLINE in small config * turn off hidden class transition table in small config Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
This commit is contained in:
parent
a77b341324
commit
4e9349b999
15 changed files with 361 additions and 17 deletions
|
|
@ -970,6 +970,9 @@ Value ByteCodeInterpreter::interpret(ExecutionState* state, ByteCodeBlock* byteC
|
|||
{
|
||||
CreateObject* code = (CreateObject*)programCounter;
|
||||
registerFile[code->m_registerIndex] = new Object(*state);
|
||||
#if defined(ESCARGOT_SMALL_CONFIG)
|
||||
registerFile[code->m_registerIndex].asObject()->markThisObjectDontNeedStructureTransitionTable();
|
||||
#endif
|
||||
ADD_PROGRAM_COUNTER(CreateObject);
|
||||
NEXT_INSTRUCTION();
|
||||
}
|
||||
|
|
@ -1774,6 +1777,10 @@ NEVER_INLINE Value ByteCodeInterpreter::getObjectPrecomputedCaseOperationCacheMi
|
|||
return Value(obj->asArrayObject()->arrayLength(state));
|
||||
}
|
||||
|
||||
#if defined(ESCARGOT_SMALL_CONFIG)
|
||||
return obj->get(state, ObjectPropertyName(state, code->m_propertyName)).value(state, receiver);
|
||||
#endif
|
||||
|
||||
const int maxCacheMissCount = 16;
|
||||
const int minCacheFillCount = 3;
|
||||
const size_t maxCacheCount = 6;
|
||||
|
|
@ -1926,6 +1933,12 @@ NEVER_INLINE void ByteCodeInterpreter::setObjectPreComputedCaseOperationCacheMis
|
|||
return;
|
||||
}
|
||||
|
||||
#if defined(ESCARGOT_SMALL_CONFIG)
|
||||
originalObject->markThisObjectDontNeedStructureTransitionTable();
|
||||
originalObject->setThrowsExceptionWhenStrictMode(state, ObjectPropertyName(state, code->m_propertyName), value, willBeObject);
|
||||
return;
|
||||
#endif
|
||||
|
||||
const int maxCacheMissCount = 16;
|
||||
const int minCacheFillCount = 3;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue