* updated proxy methods
GetPrototypeOf
SetPrototypeOf
IsExtensible
PreventExtensions
GetOwnProperty
DefineOwnProperty
HasProperty
Get
Set
Delete
ProxyCreate
* TODO
Enumerate and OwnPropertyKeys
Call and Construct
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
* Use non-universal compiler options for gcc only
Compiler of macOS (clang) doesn't support all options currently
used. Optimization flags `-frounding-math` and `-fsignaling-nans`
are not supported, while warning options
`-Wno-unused-but-set-variable` and `-Wno-unused-but-set-parameter`
are unknown.
Signed-off-by: Akos Kiss <akiss@inf.u-szeged.hu>
* Remove deprecated register storage class specifier
The storage class specifier `register` was deprecated in C++11 (and
is incompatible with C++17, where the keyword is unused and
reserved).
Signed-off-by: Akos Kiss <akiss@inf.u-szeged.hu>
* Remove extraneous parentheses from around equality comparison
Signed-off-by: Akos Kiss <akiss@inf.u-szeged.hu>
* Don't use memcpy on PointerValue objects
Class `PointerValue` and its descendants are dynamic classes, their
instances have a vtable pointer. C functions like `memcpy` know
nothing about C++ classes and object memory layouts, so using
C-style memory access to C++ objects with vtable pointers makes the
compiler complain.
This patch replaces `memcpy` with a more C++-ish approach.
Signed-off-by: Akos Kiss <akiss@inf.u-szeged.hu>
* add icu as submodule
* Fix some wrong implemations
* Remove functions defined on ctypes.h. its implemations slightly different on POSIX and Windows.
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. when evaluate evalLocal operation, flag of inside of with statment should propagate into inside CodeBlock due to using CallInWithOperation instead of CallOperation
3. restict using of RegisterCopySkip mode in CompoundAssigmentNodes
4. In with statement, every continue statement to outer statement is not allowed except label for literation
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. If setObjectPreComputedCase decides to make no more caches because of many cacheMisses, it should invalidate previous caches
Signed-off-by: Saebom Kim sae-bom.kim@samsung.com
2. divide CodeBlock into CodeBlock and InterpretedCodeBlock for saving memory
3. expand SCANNER_RESULT_POOL_INITIAL_SIZE to 128
4. connect String -> AtomicString with remaining space of String::m_tag
5. optimize Function.bind
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. when function name explicitly declared in its scope, initial value of function name is undefined
3. Function ctor should consider comments correctly
4. evaluate MemberExpression correctly
5. reset RegExpObject::lastIndex correctly
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. evalute function decl in catch correctly
3. give receiver of get, set in interpreter correctly
4. give right StackTrace information in with, try-catch for user
5. fix bug in argument object around get, set variable
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. DeclarativeEnvironmentRecordNotIndexedForCatch for evalutate calling eval function in catch
3. evalutate computed flag of PropertyNode properly
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. Fix bug with floating point precision in Date.parse
3. Fix bug in Date.setYear()/setFullyear() occured with invalid date value
Signed-off-by: Saebom Kim sae-bom.kim@samsung.com
2. change order of evaluate ObjectPropertyDescriptor::ObjectPropertyDescriptor
3. give name to object getter, setter
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>
- 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
- add m_isExplicitlyDeclaredOrParameterName into name info in ASTScopeContext
- add m_isMutable into IdentifierRecord struct
- add ThrowStaticExcpetion opcode in indexed-mode
- add throw exception code in storeByName operation
2. when evaluate delete operation on member variable, must evaluate toString operation once for name even if exception throws
3. in strict mode, Decimals with leading zero literals are not allowed
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. merge DeclareFunctionDeclaration, DeclareFunctionDeclarationsInGlobal into DeclareFunctionDeclarations
3. implement EnvironmentRecord::initializeBinding for initialize function decl.
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. implement ThrowStaticErrorOperation
3. optimize Get,SetObjectOpcode
4. optimize builtinArrayConstructor, Concat
5. implement SmallValue::fromValueForCtor it gives better performance when creating SmallValue from Value
6. add m_tag in String it gives the way to find typeof PointerValue without virtual function calling.
we can remove this member variable when our project is ported into small device it has small memory
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. optimize function calling performance
- change local variable binding order (this, function name first)
- revise opcode table init method
3. remove OpcodeTable::m_reverseTable
4. use shared thrower JSGetterSetter instance for arguments, function object
5. revise Function.prototype.toString for to print function's source
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2. Fix small bugs in String.prototype.replace, %TypedArray%.prototype.set
update spidermonkey excludelist
Signed-off-by: Junyoung Cho <june0.cho@samsung.com>
2. Consider __proto__ in Object Initializers(e.g. var a = {__proto__ : o}) and cyclic __proto__
3. Update sunspider script in gitlab-ci
Signed-off-by: Junyoung Cho <june0.cho@samsung.com>
* when getting a property of GlobalObject, we should think of its prototype
* if there is no parameter to Date.set* series functions, it should return NaN
* when array is parsed as JSON, the type of key is string, not number
* in Object.defineProperty(), original value with accessor should be found correctly
Signed-off-by: Saebom Kim sae-bom.kim@samsung.com
2. implement DeclareFunctionDeclarationsInGlobal, ReturnFunctionSlowCase
3. remove m_canUseDisalignedRegister in ByteCodeGenerator
4. remove ExectuionResult in ExecutionState
5. do multiple array initialization in ArrayDefineOwnPropertyOperation
6. revise FunctionObject::call, UpdateExpressions
7. fix wrong global codeBlock decision in GlobalObject::eval
8. arguments binding can be added in non-indexed mode
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>