Now,
- GCutil has bdwgc and general GC Utilities (LeakChecker, allocator
wrapper)
- src/heap has Escargot-dependent functions (Custom Allocator,
LeakCheckerBridge for global function support)
- gitlab-ci will not allow SpiderMonkey's failure
- fix typos
- subdivide cases when there is controlflow in 'with' operation
- Function.prototype.call should initialize arguments field even if there isn't any value
- implement Number.prototype.toLocaleString
- construct m_objectPrototypeToString
- upgrade check_tidy.py to print filenames which are not tidy
Signed-off-by: Saebom Kim sae-bom.kim@samsung.com
2. optimize UpdateExpressions
- implement Increment, Decrement codes
- divide UpdateExpressions into fast case and slow case
- use Increment, Decrement codes in fast case
3. optimiuze AssigmentExpressionSimpleNode
4. avoiding to generate JumpIfFalse if condition is always true in WhileStatementNode ex) while(true) {...}
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. expand register limit to uint16_t
3. introduce skip copying from stack allocated local variable to interpreter register file
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. use direct memory reference instead of in-direct memory reference in GetObjectPrecomputedCase
3. use StringView with String::subString if needed
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. add ObjectDefineOwnPropertyWithNameOperation code for remove useless ObjectPropertyName(ExecuteState, Value) call in interpreter
3. add ObjectPointerTag in Value::tag for 32bits. this gives better performance for Value::isObject, Value::isString function
4. optimize FunctionObject::call, Value::isPrimitive function
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. implement selective clearing Stack
- only blockes have object, array, new expression are cleared by ClearStack function now
3. improve get object inline cache
4. remove CodeBlock::hasNonConfiguableNameOnGlobal
5. add thisValue in ExecutionState
6. optimize Value::abstractEqualsToSlowCase
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. disable thread function in bdwgc
3. remove m_version from ObjectStructure
4. add rawBuffer in TypedArrayObject
5. remove wrong usage of Value::toArrayIndex and Value::toIndex
6. optimize String::tryToUseAsArrayIndex, String::tryToUseAsIndex
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
- hasArgumentsBindingInParameterOrChildFD is computed every function calling before
2. computing ExtendedNodeLOC bug with global CodeBlock when source code has comment at the front
3. add default object structor for arguments object
4. implement Object::getIndexedProperty, Object::setIndexedProperty
5. use SmallValueVector in Env record instead of ValueVector
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. use stackStorage for "arguments" object
3. do not insert empty name for ASTScopeContext when comes emptyString in FunctionExpression name
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
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>
2. implicitly delete AST when ast is useless
3. allocate String::emptyString correctly
4. hide ptr in LeakChecker for better tracing
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. remove ast implicitly when use less avoiding memory leak
3. change ByteCodeBlockData gc type into atomic
4. add literal info into ByteCodeBlock
5. force enable eager sweep
6. divide GC_mark_and_push_custom into GC_mark_and_push_custom_iterable and GC_mark_and_push_custom
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. don't useless info in esprima
3. implement pool of ScannerResult in esprima
4. optimize SetGlobalObject, GetGlobalObject
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
- The values of [[Enumerable]] attributes are not considered when
determining if a property of a prototype object is shadowed by a
previous object on the prototype chain.
- Handle different object initializer syntax in ES5-ES6
- Parser should not be in function body at initialization