Commit graph

39 commits

Author SHA1 Message Date
Saebom Kim
6d4ed41488 1. When 'writable' property of array length turned into 'false', convert it into NonFastMode
2. If RegExp's source needs escapeSlash process, it should count the number of leading backSlashs

Signed-off-by: Saebom Kim sae-bom.kim@samsung.com
2017-04-05 19:28:08 +09:00
Saebom Kim
a904501b75 Combination of [try|catch|with] and controlflows works correctly
- add member m_outerLimitCount into class ControlFlowRecord to save tryStatementScopeCount of the jump destination

* fix bug in Array.prototype.concat()
 - It will check the length of the array overflows or not

* fix bug in setting __proto__
 - when setting __proto__ to non-object, non-null, non-undefined value, it should do nothing

Signed-off-by: Saebom Kim sae-bom.kim@samsung.com
2017-03-28 18:25:45 +09:00
seonghyun kim
811cc9553f 1. setting array.length to writable false while writing length is should correctly evaluated
2. revise Array.prototype.{splice, slice, shift, unshift}
3. change Object::nextIndexForward, Object::nextIndexBackward to return existence of index

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2017-03-28 14:23:48 +09:00
seonghyun kim
34dad07c79 move VM-bound data into VMInstance from context
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2017-03-23 18:48:02 +09:00
Saebom Kim
add7a8266d 1. Fix a bug on ArrayObject::defineOwnProperty for "length" property
2. Changed the order of evaluting parameters in Date.prototype.set* series

Signed-off-by: Saebom Kim sae-bom.kim@samsung.com
2017-03-23 14:44:25 +09:00
Saebom Kim
243c8c2c2b implement more about DefineOwnProperty() of ArrayObject
* "length" property of ArrayObject is treated with special flow when defined
* fix bugs in Object::defineOwnProperty() which occured when "value" property is not given

Signed-off-by: Saebom Kim sae-bom.kim@samsung.com
2017-03-22 10:06:53 +09:00
Youngil Choi
e02af7daf8 Add License Clauses
Signed-off-by: Youngil Choi <duddlf.choi@samsung.com>
2017-03-10 18:06:20 +09:00
Junyoung Cho
0d93c8e2fe Seperate original src/heap directory into submodule GCutil and src/heap
Now,
 - GCutil has bdwgc and general GC Utilities (LeakChecker, allocator
         wrapper)
 - src/heap has Escargot-dependent functions (Custom Allocator,
         LeakCheckerBridge for global function support)
2017-02-23 13:21:22 +09:00
seonghyun kim
1b044658fc 1. remove libunwind from Makefile & source
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>
2017-02-13 10:36:25 +09:00
seonghyun kim
0f1cc8999c 1. diet native getter, setter on Object
2. diet ByteCode
3. use get, setIndexedProperty in ByteCodeInterpreter
4. implement get, setIndexedProperty for typed array
5. move implemention of CallNativeFunctionOpcode to FunctionObject::call
6. remove m_contentLength, m_has8BitContent in RopeString
7. optimize ByteCodeInterpreter::getObjectPrecomputedCaseOperation, setObjectPrecomputedCaseOperation
8. diet Arguments object

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2017-02-13 10:36:25 +09:00
seonghyun kim
e305e378cb 1. add CodeBlock::m_hasArgumentsBindingInParameterOrChildFD for boost FunctionObject::call performance
- 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>
2017-02-13 10:36:25 +09:00
seonghyun kim
3a7541d44e 1. optimize esprima::isIdenifierStart, esprima::isIdenifierPart
2. optimize String::find
3. expand ESCARGOT_ASCII_TABLE_MAX to 256
4. implement ArrayObject::fastGetObject, ArrayObject::fastSetObject for fast ArrayObject access in native source
5. optimize Array.prototype.spice, Array.prototype.push... with ArrayObject::fastGetObject, ArrayObject::fastSetObject

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2017-02-03 21:43:49 +09:00
seonghyun kim
dbbbdf2374 allocate almost gc objects as typed gc object
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2017-01-18 20:28:45 +09:00
seonghyun kim
abc8d38ff7 optimize Object::enumeration
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2017-01-13 14:37:38 +09:00
seonghyun kim
109be415d1 1. remove Increment, Decrement opcode
2. implement fast String buffer access
3. remove hash from AtomicStringMap
4. implement simple dtoa cache

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2017-01-12 21:30:26 +09:00
seonghyun kim
adc1b3cea1 1. optimze write, read global object in interpreter
2. optimze write, read object in interpreter

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2017-01-09 20:15:15 +09:00
seonghyun kim
f112dfefd2 1. fix wrong usage of ObjectPropertyDescriptor::NotPresent
2. add ArrayBufferObject

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2017-01-05 03:24:02 +00:00
seonghyun kim
65e5d5ab7a fix ArrayObject::setFastModeValue
condition of enter NonFastMode is wrong

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2017-01-04 13:12:04 +00:00
seonghyun kim
9405b56d82 1. fix setting array length bug
2. optimze reduce array length
3. implement escape, unescape
4. implement rest of Array.prototype builtin functions

this patch pass all of test262(5.1)

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2017-01-04 12:35:54 +00:00
seonghyun kim
2057250e48 implement Array.prototype.indexOf, Array.prototype.lastIndexOf
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2017-01-04 15:18:58 +09:00
seonghyun kim
7a7d339161 re-implement set ArrayLength
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2017-01-03 17:51:35 +09:00
Eunji Jeong
709b364547 Pass test262 Object.prototype.defineOwnProperty tests except for arguments 2017-01-03 12:07:54 +09:00
seonghyun kim
9340d87ded 1. fix ArrayIndex uint32 into uint64
2. fix Invalid ArrayIndexValue into 2^32 + 1
3. fix Array.prototype.push bug
4. implement part of Array.prototype.splice

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2017-01-02 21:33:59 +09:00
Eunji Jeong
8873264fcd Implement seal, freeze, extensible-related function properties in Object prototype 2016-12-30 14:17:17 +09:00
seonghyun kim
5bca24da82 1. implement ObjectDefineOwnPropertyOperation
2. Add errorcode in ScriptError
3. Fix array length bug
4. Fix ObjectPropertyDescriptor::ObjectPropertyDescriptor(ExecutionState& state, Object* obj)

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2016-12-23 22:21:22 +09:00
seonghyun kim
5066ff44b6 implement bad time
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2016-12-22 12:49:10 +09:00
seonghyun kim
f9a3715ae6 implement slow mode of ArrayObject
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2016-12-22 12:38:16 +09:00
seonghyun kim
30356c1d81 1. implement Object.prototype.__proto__
2. remove __proto__ in Object

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2016-12-21 20:23:55 +09:00
seonghyun kim
24ff648fe7 implement basic of JSGetterSetter
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2016-12-21 12:39:39 +09:00
Eunji Jeong
36c293c12f Pass tidy check 2016-12-20 14:36:48 +09:00
seonghyun kim
11e625f373 1. implement instanceof, in, delete operator
2. VariableDeclaratorNode does not affect execute result
3. optimize Object get, set in interpreter

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2016-12-20 13:31:49 +09:00
Eunji Jeong
1a56fe4e48 Add custom allocator for precise marking and add more tools
* CustomAllocator : Supports precise marking for specified objects.
                    (also supports iteration of specific typed objects)
* HeapVisualizer : Track and visualize heap usage info.
* GCLeakChecker : Shows where the false reference came from.
                  (Developer should specify the location of false reference)
* Add support for incremental build of bdwgc
2016-12-20 11:14:07 +09:00
Junyoung Cho
ac9b7b10f5 rename:
ObjectPropertyDescriptor->ObjectStructurePropertyDescriptor
ObjectPropertyDescriptorForDefineProperty->ObjectPropertyDescriptor
2016-12-19 20:52:18 +09:00
Junyoung Cho
b38fc335b8 Implement part of Array.prototype.splice.
Fix setFastModeValue, deleteOwnProperty in Array Object.
2016-12-16 16:42:44 +09:00
seonghyun kim
61eb45b0c7 1. optimize String buffer acquire functions
2. implment String.prototype.toLowerCase, toUpperCase
3. implment Array.prototype.sort
4. fix codeBlock bugs

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2016-12-15 11:37:25 +09:00
seonghyun kim
64a56ae946 1. re-implement Object::defineOwnProperty
2. implement String.prototype.match, replace

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2016-12-14 16:17:11 +09:00
seonghyun kim
35142d1c6a implement eval
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2016-12-12 14:34:31 +09:00
seonghyun kim
c34e6da780 1. implement StringObject
2. implement Array.prototype.join, toString
3. implement Math.abs, Math.min....so on
4. implement Object::enumeration

this pass 3d-cube.js, 3d-morph.js

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2016-12-08 21:45:17 +09:00
seonghyun kim
efb82ad9b5 1. implement ArrayObject
2. implement UnaryNot, Math.sqrt, break statement
3. add make tidy
this patch pass bitops-nsieve-bits.js, access-fannkuch.js, access-nbody.js

Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2016-12-08 17:25:48 +09:00