From f6f52a2bf1e03533a13bd05405e24da2b8ecd8e0 Mon Sep 17 00:00:00 2001 From: Robert Fancsik Date: Thu, 27 Jun 2019 12:56:06 +0200 Subject: [PATCH] Update the internals documentation (#2923) JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu --- docs/04.INTERNALS.md | 35 ++++++++++++++++++----------------- docs/img/ecma_object.png | Bin 27623 -> 30197 bytes docs/img/ecma_value.png | Bin 7188 -> 6339 bytes 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/docs/04.INTERNALS.md b/docs/04.INTERNALS.md index 766b0888a..81ff54f54 100644 --- a/docs/04.INTERNALS.md +++ b/docs/04.INTERNALS.md @@ -23,7 +23,7 @@ Expression parser is responsible for parsing JavaScript expressions. It is imple JavaScript statements are parsed by this component. It uses the [Expression parser](#expression-parser) to parse the constituent expressions. The implementation of Statement parser is located in `./jerry-core/parser/js/js-parser-statm.c`. -Function `parser_parse_source` carries out the parsing and compiling of the input EcmaScript source code. When a function appears in the source `parser_parse_source` calls `parser_parse_function` which is responsible for processing the source code of functions recursively including argument parsing and context handling. After the parsing, function `parser_post_processing` dumps the created opcodes and returns an `ecma_compiled_code_t*` that points to the compiled bytecode sequence. +Function `parser_parse_source` carries out the parsing and compiling of the input ECMAScript source code. When a function appears in the source `parser_parse_source` calls `parser_parse_function` which is responsible for processing the source code of functions recursively including argument parsing and context handling. After the parsing, function `parser_post_processing` dumps the created opcodes and returns an `ecma_compiled_code_t*` that points to the compiled bytecode sequence. The interactions between the major components shown on the following figure. @@ -33,19 +33,19 @@ The interactions between the major components shown on the following figure. This section describes the compact byte-code (CBC) representation. The key focus is reducing memory consumption of the byte-code representation without sacrificing considerable performance. Other byte-code representations often focus on performance only so inventing this representation is an original research. -CBC is a CISC like instruction set which assigns shorter instructions for frequent operations. Many instructions represent multiple atomic tasks which reduces the byte code size. This technique is basically a data compression method. +CBC is a CISC like instruction set which assigns shorter instructions for frequent operations. Many instructions represent multiple atomic tasks which reduces the bytecode size. This technique is basically a data compression method. ## Compiled Code Format -The memory layout of the compiled byte code is the following. +The memory layout of the compiled bytecode is the following. ![CBC layout](img/CBC_layout.png) The header is a `cbc_compiled_code` structure with several fields. These fields contain the key properties of the compiled code. -The literals part is an array of ecma values. These values can contain any EcmaScript value types, e.g. strings, numbers, function and regexp templates. The number of literals is stored in the `literal_end` field of the header. +The literals part is an array of ecma values. These values can contain any ECMAScript value types, e.g. strings, numbers, functions and regexp templates. The number of literals is stored in the `literal_end` field of the header. -CBC instruction list is a sequence of byte code instructions which represents the compiled code. +CBC instruction list is a sequence of bytecode instructions which represents the compiled code. ## Byte-code Format @@ -55,7 +55,7 @@ The memory layout of a byte-code is the following: Each byte-code starts with an opcode. The opcode is one byte long for frequent and two byte long for rare instructions. The first byte of the rare instructions is always zero (`CBC_EXT_OPCODE`), and the second byte represents the extended opcode. The name of common and rare instructions start with `CBC_` and `CBC_EXT_` prefix respectively. -The maximum number of opcodes is 511, since 255 common (zero value excluded) and 256 rare instructions can be defined. Currently around 230 frequent and 120 rare instructions are available. +The maximum number of opcodes is 511, since 255 common (zero value excluded) and 256 rare instructions can be defined. Currently around 215 frequent and 70 rare instructions are available. There are three types of bytecode arguments in CBC: @@ -63,7 +63,7 @@ There are three types of bytecode arguments in CBC: * __literal argument__: An integer index which is greater or equal than zero and less than the `literal_end` field of the header. For further information see next section Literals (next). - * __relative branch__: An 1-3 byte long offset. The branch argument might also represent the end of an instruction range. For example the branch argument of `CBC_EXT_WITH_CREATE_CONTEXT` shows the end of a `with` statement. More precisely the position after the last instruction. + * __relative branch__: An 1-3 byte long offset. The branch argument might also represent the end of an instruction range. For example the branch argument of `CBC_EXT_WITH_CREATE_CONTEXT` shows the end of a `with` statement. More precisely the position after the last instruction in the with clause. Argument combinations are limited to the following seven forms: @@ -137,12 +137,12 @@ Byte-codes of this category serve for placing objects onto the stack. As there a -| byte-code | description | -| --------------------- | ---------------------------------------------------- | -| CBC_PUSH_LITERAL | Pushes the value of the given literal argument. | -| CBC_PUSH_TWO_LITERALS | Pushes the value of the given two literal arguments. | -| CBC_PUSH_UNDEFINED | Pushes an undefined value. | -| CBC_PUSH_TRUE | Pushes a logical true. | +| byte-code | description | +| --------------------- | ----------------------------------------------------- | +| CBC_PUSH_LITERAL | Pushes the value of the given literal argument. | +| CBC_PUSH_TWO_LITERALS | Pushes the values of the given two literal arguments. | +| CBC_PUSH_UNDEFINED | Pushes an undefined value. | +| CBC_PUSH_TRUE | Pushes a logical true. | | CBC_PUSH_PROP_LITERAL | Pushes a property whose base object is popped from the stack, and the property name is passed as a literal argument. | @@ -196,7 +196,7 @@ Branch byte-codes are used to perform conditional and unconditional jumps in the | CBC_JUMP_BACKWARD | Jumps backward by the 1 byte long relative offset argument. | | CBC_JUMP_BACKWARD_2 | Jumps backward by the 2 byte long relative offset argument. | | CBC_JUMP_BACKWARD_3 | Jumps backward by the 3 byte long relative offset argument. | -| CBC_BRANCH_IF_TRUE_FORWARD | Jumps if the value on the top of the stack is true by the 1 byte long relative offset argument. | +| CBC_BRANCH_IF_TRUE_FORWARD | Jumps forward if the value on the top of the stack is true by the 1 byte long relative offset argument. | @@ -219,12 +219,14 @@ ECMA component of the engine is responsible for the following notions: ## Data Representation -The major structure for data representation is `ECMA_value`. The lower two bits of this structure encode value tag, which determines the type of the value: +The major structure for data representation is `ECMA_value`. The lower three bits of this structure encode value tag, which determines the type of the value: * simple * number * string * object +* symbol +* error ![ECMA value representation](img/ecma_value.png) @@ -275,7 +277,6 @@ The objects are represented as following structure: * Reference counter - number of hard (non-property) references * Next object pointer for the garbage collector - * GC's visited flag * type (function object, lexical environment, etc.) ### Properties of Objects @@ -323,7 +324,7 @@ Collections are array-like data structures, which are optimized to save memory. ### Exception Handling -In order to implement a sense of exception handling, the return values of JerryScript functions are able to indicate their faulty or "exceptional" operation. The return values are actually ECMA values (see section [Data Representation](#data-representation)) in which the error bit is set if an erroneous operation is occurred. +In order to implement a sense of exception handling, the return values of JerryScript functions are able to indicate their faulty or "exceptional" operation. The return values are ECMA values (see section [Data Representation](#data-representation)) and if an erroneous operation occurred the ECMA_VALUE_ERROR simple value is returned. ### Value Management and Ownership diff --git a/docs/img/ecma_object.png b/docs/img/ecma_object.png index b0d45450d698190357a0cad67d17874875acb5b0..1913dfc89bdaffb2019fc1dca43f268f7e9792bb 100644 GIT binary patch literal 30197 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 diff --git a/docs/img/ecma_value.png b/docs/img/ecma_value.png index 5894243025dbeb03884db81e494c7a4f062af1ac..9e54853e01b79f7c0df3d819d764bba2531ea788 100644 GIT binary patch literal 6339 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℞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 literal 7188 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