Improve Value::Value(double) performance.
Add missing double and int32 type testing on interpreter
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
* prototype object of Temporal should be ordinary object
* fix the type of prototype as to PrototypeObject
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
* check index property set in DerivedObject::defineOwnProperty method only
* index property check is removed for normal Object because PrototypeObject would check it instead
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
* In interpreter we can use ByteTerm* instead of int for program counter
* Too big inline function is not good for performance
* considering utf-16 string is only needed for UChar not LChar
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
After update the excludelist with make_excludelist.py it doesn't gave
information about failing and new passing tests. This patch will fix this.
Signed-off-by: Gergo Csizi gergocs@inf.u-szeged.hu
* set dummy element address to denote non-fast mode array
* represent non-fast mode array without creating ObjectRareData
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
* rename tagging operations to clearly recognize typeTag and tag (vtable address)
* add global tag values for ScriptSimpleFunctionObject
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
Add Object::getIndexedPropertyValue method for achive that
the function removes redundant creation of ObjectGetResult.
And Improve TypedArray object reading performance through better implementation
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
* undefined value is obtained through GlobalVariableGet bytecode
* convert this case into simple LoadLiteral bytecode
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
* debugger always stops at the start of new Script execution
* BreakpointLocationsInfo is added to debugger when Escargot generates bytecode for execution only
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
PrototypeObject always returns true in Object::isEverSetAsPrototypeObject.
thus it don't need another space for mark it was used for prototype object.
this object can reduce a lots allocation of ObjectRaraData
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
* switch statement has the last location in switch block which incurs an index error in BreakPoint insertion
* fix switch statement to have the start position after switch keyword
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
* `initializeFunctionScript` API is added
* unlike dynamically created function, `initializeFunctionScript` supports debugger
* origin line offset is added for correct source code calculation in debugger
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
* ErrorThrowCallback is invoked when an Error is thrown
* ErrorThrowCallback overwrites the result of ErrorCreationCallback
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
Divice get object inline cache into simple and complex cases
the simple case should test just one object chain with plain data property
the complex case should consider every case of inline cache
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
store double can cause type test cost for `the double is Int32`
If store double valus as Value, the test cost disapper
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
* DoubleInEncodedValue might have an integer value that is also not a small integer (SMI)
* When converting to Value, DoubleInEncodedValue should be correctly converted to the original value using Value(double) constructor
* fix test runner to run cctest for x86 environment
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
we must convert form of inline cache when find complex case(max index is greater than 1) of get object.
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
I store its tag information in the same location with PointerValues
It can reduce memory access count when finding type
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
* if ErrorCreationCallback is registered and this callback already inserts `stack` property for evert created ErrorObject,
we just ignore adding `stack` data into ErrorObject
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>