Changed AMDJS merge implementation to use Rhino JS parser. Previous implementation used regex matcher for each line, and trying to replace value. This implementation was fragile and it does not work various different cases.
Previous merge operation tried to wrap long lines, but the new implementation put translated value in a single line. We may revisit this and re-implement line wrapping logic with the new code base.
Fixed #148 caused by the previous merge implementation.
Previous AMDJS filter write/merge implementation did not escape string literal properly - such as \n for line feed, \" for quoataion and so on (note: parser worked OK because Rhino parser does unescaping). Added proper string literal escape code.
Added new data drive test framework. With this framework, we can easily add parse/write/merge test cases without writing new JUnit test methods.
Coverage decreased (-0.06%) to 52.606% when pulling 2925577f71eeaa47053424d53681f5c966c718a0 on yumaoka:amdjs-merge into 77b2b0bb918ef6aa2534cbab5a7e06a977692311 on IBM-Cloud:master.
\n
for line feed,\"
for quoataion and so on (note: parser worked OK because Rhino parser does unescaping). Added proper string literal escape code.