Jerry (the command line tool) has been supporting the execution of multiple script files for long. However, until now, it simply concatenated all sources into a single source buffer and parsed/executed them as one unit. Other JS execution tools (e.g., jsc, v8) load and execute separate files as separate units -- but still in the same execution environment. The most significant effect of this approach is that the `"use strict;"` directive (or the absence of it) at the beginning of each JS script file takes effect as expected (i.e., as if the script was executed alone). Contrarily, the concatenation-based approach forces the strictness of the first script on all the rest (i.e., if the first script starts with `"use strict";` the rest is also executed in a strict environment even if they did not contain the directive, and vice versa). This patch makes the jerry command line tool to load/parse/run one unit at a time. Side effects: - As there is no need for separate file read routines that load one file (a snapshot) or concat multiple (JS sources) anymore, those routines got merged. - Both previous read routines used multiple stdio functions (`fseek`, `ftell`, and `rewind`). This has been simplified to rely on `fread` only to find out the length of the input. - This simplification made the above mentioned functions superfluous in jerry-libc. - As some error messages had to be touched in this patch, several more have been beautified to make them more consistent. - One small change was needed in `jerry_parse` in jerry-core to allow subsequent parsing of multiple sources (without that, an assertion was triggered). JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
JerryScript: JavaScript engine for Internet of Things
JerryScript is the lightweight JavaScript engine for very constrained devices such as microcontrollers:
- Only few kilobytes of RAM available to the engine (<64 KB RAM)
- Constrained ROM space for the code of the engine (<200 KB ROM)
Additional informantion can be found on our project page and wiki.
Quick Start
Getting Sources
git clone https://github.com/Samsung/jerryscript.git jr
cd jr
Building
make release.linux -j
For Additional information see Development.
Documentation
License
JerryScript is Open Source software under the Apache 2.0 license. Complete license and copyright information can be found within the code.
Copyright 2015 Samsung Electronics Co., Ltd.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
