Hyukwoo Park
2b145ef54c
Update coding style guide ( #296 )
...
* reformat all single logical expression based on the new rule
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2019-07-03 15:42:41 +09:00
Robert Fancsik
9166b2de38
Implement the generator functions ( #270 )
...
Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
2019-06-10 11:55:14 +09:00
Hyukwoo Park
151e30e24d
Remove redundant GC objects in parsing ( #261 )
...
* unnecessary GC object/structure in parser removed
* explicitly represent stack-allocated object
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2019-05-28 13:53:40 +09:00
Zoltan Herczeg
34fa4f3d4f
Reduce stack usage of the parser. ( #269 )
...
Inline CoverGrammar functions and move the common code into helper functions.
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-05-23 17:31:49 +09:00
Hyukwoo Park
6d7312579e
Optimize memory allocation of Lexer based on the stack ( #266 )
...
* each ScannerResult is now allocated on the stack if it is really necessary
* reduce the reference count overhead for each ScannerResult
* ALLOC_TOKEN macro is newly added for allocation of each ScannerResult token
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2019-05-22 14:58:52 +09:00
Robert Fancsik
2e588a542b
Implement patterns ( #222 )
...
Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
2019-05-15 21:29:55 +09:00
Hyukwoo Park
3c6dee209b
Fix bugs in for-of and iterator operation ( #253 )
...
* left should not be assignmentexpression in for-of statement
* this object for iterator operation fixed
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2019-05-14 18:42:21 +09:00
Robert Fancsik
1fc56fcf9a
Implement the class language element part II. ( #203 )
...
Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
2019-05-14 09:10:13 +09:00
Patrick Kim
d9976037ce
Arrow function can be used as argument ( #250 )
...
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2019-05-13 20:10:09 +09:00
Hyukwoo Park
10bf53ab8b
Fix to use Marker instead of MetaNode in parsing of arrow function parameters ( #247 )
...
* scanner should be indexed on the relative position to the start position of each parsing unit, so Marker is used instead
* test cases for arrow-function are newly added
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2019-05-13 11:39:25 +09:00
Zoltan Herczeg
0caf44d918
Remove tolerateError. ( #246 )
...
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-05-10 13:20:36 +09:00
Robert Fancsik
d788b0b3a9
Add default argument support for arrow functions ( #228 )
...
Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
2019-05-07 18:53:49 +09:00
Zoltan Herczeg
b0f1b83697
Make ScanExpressionResult to behave like an ASTNodeType. ( #227 )
...
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-05-07 11:19:56 +09:00
Robert Fancsik
cd03a086f1
Implement default arguments ( #198 )
...
Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
2019-04-30 16:42:40 +09:00
Zoltan Herczeg
3ea072676c
Remove string value from ScanExpressionResult. ( #213 )
...
Only Identifiers use it, so move it into a context member.
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-04-30 12:07:55 +09:00
Zoltan Herczeg
bb90eb50e1
Merge parse/scan catchClause and finallyClause. ( #212 )
...
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-04-26 13:39:24 +09:00
Hyukwoo Park
8850b0103f
Implement for-of statement ( #205 )
...
* merging for-of and for-in statement
* remove unnecessary bytecodes
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2019-04-23 15:29:40 +09:00
Zoltan Herczeg
11129d6c91
Merge parse/scan switchStatement, labelledStatement and throwStatement. ( #204 )
...
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-04-18 19:55:05 +09:00
Zoltan Herczeg
b38439447d
Merge parse/scan continueStatement, breakStatement and returnStatement. ( #202 )
...
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-04-17 10:10:52 +09:00
Peter Marki
2a15e5b55d
Add es2015 rest element ( #192 )
...
Co-authored-by: Robert Fancsik frobert@inf.u-szeged.hu
Signed-off-by: Peter Marki marpeter@inf.u-szeged.hu
2019-04-16 12:01:30 +09:00
Zoltan Herczeg
f92e1993ce
Merge parse/scan doWhileStatement, whileStatement and forStatement. ( #196 )
...
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-04-15 12:34:34 +09:00
Robert Fancsik
ae28733902
Implement spread operator ( #168 )
...
Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
2019-04-12 09:24:56 +09:00
Zoltan Herczeg
36db704afe
Merge parse/scan variableDeclaration, emptyStatement and ifStatement. ( #189 )
...
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-04-09 10:22:00 +09:00
Zoltan Herczeg
6c1c5f2d19
Merge parse/scan expression, statementListItem and block. ( #183 )
...
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-04-08 14:12:05 +09:00
Zoltan Herczeg
3d756cfed6
Merge parse/scan conditionalExpression and assignmentExpression. ( #178 )
...
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-04-03 14:56:05 +09:00
Zoltan Herczeg
d9d152dfa2
Merge parse/scan updateExpression and unaryExpression. ( #175 )
...
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-04-02 14:13:46 +09:00
Patrick Kim
1476a5ef11
Fix memory leak in Parser. ( #166 )
...
PassRefPtr::leakRef don't decrease refCount. but PassRefPtr::ctor increase refCount
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2019-03-26 20:39:48 +09:00
Zoltan Herczeg
e228baf428
Merge parse/scan leftHandSideExpressionAllowCall and leftHandSideExpression. ( #163 )
...
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-03-26 17:00:37 +09:00
Zoltan Herczeg
d9e877a35e
Merge parse/scan groupExpression and newExpression. ( #158 ) ( #160 )
...
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-03-25 15:55:01 +09:00
Zoltan Herczeg
087a3fc2d6
Merge parse/scan objectProperty and objectInitializer. ( #158 )
...
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-03-22 13:35:40 +09:00
Robert Fancsik
291edc0a10
Merge ParseFunctionDeclaration and ParseFunctionExpression to reduce code duplication ( #155 )
...
Signed-off-by: Robert Fancsik <frobert@inf.u-szeged.hu>
2019-03-20 16:24:30 +09:00
Zoltan Herczeg
728ca7cb0f
Merge parse/scan pattern, spreadElement and arrayInitializer. ( #150 )
...
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-03-20 13:30:27 +09:00
Zoltan Herczeg
beaa26988b
Start merging parsing/scanning. ( #148 )
...
There is a lot of code duplication for parser and scanner.
Source code duplications can be reduced by templates without sacrificing performance.
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-03-15 20:07:49 +09:00
Robert Fancsik
e4dac958d0
Implement the class language element part I. ( #141 )
...
Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
2019-03-15 19:59:39 +09:00
Robert Sipka
4b7720ce90
Check that the callee node pointer is not nullptr ( #137 )
...
Fixes #131
Signed-off-by: Robert Sipka <rsipka.uszeged@partner.samsung.com>
2019-03-11 12:01:09 +09:00
Zoltan Herczeg
3ed483090f
Simplify error throwing in parser. ( #134 )
...
Remove unnecessary functions, simplify interface.
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-03-11 12:00:06 +09:00
Tóth Béla
84df61d40b
Reduce Cognitive Complexity in src/esprima.cpp ( #113 )
...
Reducing complexities reported by Sonarcloud, and refactoring possible later issue code.
https://sonarcloud.io/project/issues?id=pando-project_escargot&resolved=false&rules=cpp%3AS3776&severities=CRITICAL&sinceLeakPeriod=true&types=CODE_SMELL#
Signed-off-by: Bela Toth tbela@inf.u-szeged.hu
2019-03-06 12:39:19 +09:00
Peter Marki
2ad365189d
Use initializer lists where possible ( #105 )
...
https://sonarcloud.io/organizations/pando-project/rules?open=cpp%3AS3230&rule_key=cpp%3AS3230
Signed-off-by: Peter Marki marpeter@inf.u-szeged.hu
2019-02-26 14:28:05 +09:00
Daniella Barsony
56b7748c67
Reduce code smells ( #82 )
...
Signed-off-by: Daniella Barsony bella@inf.u-szeged.hu
2019-02-19 15:48:48 +09:00
Zoltan Herczeg
29ac4731c9
Move white space and new line checkers into the Lexer. ( #81 )
...
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-02-13 08:19:28 +09:00
Zoltan Herczeg
dc30cd3035
Move ScannerResult into Scanner. ( #77 )
...
This way several functions can be moved into the private section.
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-01-31 18:16:26 +09:00
Zoltan Herczeg
5d5162ccca
Remove tolerant parsing. ( #75 )
...
A JS engine must not accept an invalid JS code so tolerant
parsing is removed from the parser and configuration.
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-01-30 14:47:57 +09:00
Hyukwoo Park
3dec40df2e
Support Method Property in Object Initialization [ES2015] ( #67 )
...
* Support for method notation in object property definitions
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2019-01-23 14:06:37 +09:00
Peter Marki
16010c33e1
Throw exceptions by value and catch by reference ( #62 )
...
Signed-off-by: Peter Marki marpeter@inf.u-szeged.hu
2019-01-23 11:50:52 +09:00
Zoltan Herczeg
de84be2e9e
Remove curlyStack structure. ( #59 )
...
Instead of maintaining a structure in memory simply re-scan the
right brace when a template is parsed.
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-01-22 18:15:17 +09:00
Zoltan Herczeg
09b45e47b4
Move Lexer (Scanner) out of parser. ( #55 )
...
Currently the parser is a very large file and hard to maintain. This patch is
the first which splits it into smaller files.
During the move some style fixes are applied. The identifer start
detection is improved as well.
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2019-01-17 15:36:14 +09:00
Akos Kiss
8f6925acc7
Fix warnings reported during compilation on macOS ( #32 )
...
* 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>
2019-01-02 17:48:01 +09:00
김승현/Tizen Platform Lab(SR)/Engineer/삼성전자
ee036ce97f
Optimize script parser ( #173 )
...
* Implement lazy string literal parsing
* Fix bug in Vector
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2018-12-13 10:35:17 +09:00
김승현/Tizen Platform Lab(SR)/Engineer/삼성전자
ea7b221a53
Implement initial version scanning function in program when parsing program. ( #172 )
...
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2018-12-11 13:18:01 +09:00
김승현/Tizen Platform Lab(SR)/Engineer/삼성전자
70afb08b5a
Optimize vector, esprima_cpp, bytecode generating ( #170 )
...
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
2018-12-07 14:21:38 +09:00