* Implement String with inline buffer. this reduce malloc count & reduce memory usage
* Remove typed-gc-malloc from some classes.
typed malloc classes should have storage for descriptor each malloc.
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
* Prevent too many recursive call with RopeString::charAt
* Add option to configure ObjectStructure
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
* divide Value::toBoolean into 2 functions for better function call inlinling
* try to avoid call RopeString::flattenRopeString if possible
flatten RopeString for read one char is waste I think
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
* remove unused functions
* remove unused variables
* mark necessary but unused variables with UNUSED_VARIABLE
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
* Compress CompressibleStrings on GC reclaim end event
- if there is reference about data of CompressibleString on stack, we should give up compressing.
we don't need to search heap space because I redesigned StringView
(we should not store string buffer data on heap without owner)
* Redesign StringView
- Don't save string buffer address as its member. because buffer of CompressibleString can be deleted
- If we don't save string buffer address on StringView, parser performance may dropped.
becuase parser access string data a lot.
so I introduce ParserStringView. it saves buffer address. we should ParserStringView on parser only.
we can save string buffer address while parsing. because GC is disabled while parsing.
* Enable CompressibleString always
* Implement cache of RegExpOptionStrings
* Implement finding system locale function on RuntimeICUBinder avoiding call uloc_getDefault.
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
* Reduce size of RopeString
* Use fit memory if possible for ArrayObject fastModeData
* Re-implement ByteCode pruning logic
* Re-implement inline-cache for reducing memory usage
* Remove std::vector with gc_allocator. it can cause memory leak
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
This improves performance of StringRef::toStdUTF8String() in api layer.
until now, StringRef::toStdUTF8String uses String::toUTF8StringData
String::toUTF8StringData uses GC for allocate StringData
but we don't needs using GC so I changed it for peroformance.
It was take 40~50% times to display Wiki site with StarFish.
after change it, It takes 0~1% times.
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. revise rule of generate name of binded function
3. revise order evalutate CallEvalFunction opcode
4. process invalid lhs assignment correctly
5. allow \n\r in string literal
6. implement change property of binding correctly
7. Date.prototype.toGMTString and toUTCString should be same
8. fix bug in Function ctor
9. add stack checking in parseJSONWorker
10. use double_conversion with Number.prototype.toFixed, toPrecision
11. add has8BitContent for RopeString for prevent stackoverflow when invoke child::has8BitContent
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
Now,
- GCutil has bdwgc and general GC Utilities (LeakChecker, allocator
wrapper)
- src/heap has Escargot-dependent functions (Custom Allocator,
LeakCheckerBridge for global function support)