From 5562ab9947fdbe64d0db2f3bdd87163745b3cb50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Tokodi?= Date: Wed, 25 Oct 2023 12:46:06 +0200 Subject: [PATCH] Update doxygen and fix documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update Doxyfile to version 1.9.1 Re-enable doxygen CI checker Fix some regular comments that should have been doc comments Document void return types for some inline functions explicitly Move start of some doxygen groups so they are included always, and not left out of certain ifdefs Ignore some doxygen warnings: Member (function) is not documented in headers Documented empty return type in headers Argument has multiple @param documentation sections JerryScript-DCO-1.0-Signed-off-by: Máté Tokodi mate.tokodi@szteszoftver.hu --- .github/workflows/gh-actions.yml | 8 +- Doxyfile | 531 +++++++++++++----- jerry-core/api/jerry-snapshot.c | 15 +- jerry-core/api/jerryscript.c | 6 + jerry-core/ecma/base/ecma-alloc.c | 16 + jerry-core/ecma/base/ecma-gc.c | 6 + .../ecma/base/ecma-helpers-collection.c | 2 + jerry-core/ecma/base/ecma-helpers-errol.c | 4 + jerry-core/ecma/base/ecma-helpers-string.c | 8 + jerry-core/ecma/base/ecma-helpers-value.c | 10 + jerry-core/ecma/base/ecma-helpers.c | 2 + jerry-core/ecma/base/ecma-line-info.c | 4 +- .../ecma-builtin-helpers-json.c | 4 +- .../builtin-objects/ecma-builtin-helpers.h | 3 +- jerry-core/ecma/operations/ecma-objects.c | 2 + .../ecma/operations/ecma-promise-object.c | 4 + .../ecma-shared-arraybuffer-object.h | 4 +- .../ecma/operations/ecma-string-object.c | 2 - jerry-core/include/jerryscript-port.h | 5 +- jerry-core/jcontext/jcontext.c | 6 + jerry-core/jmem/jmem-heap.c | 16 +- jerry-core/jmem/jmem-poolman.c | 2 + jerry-core/parser/js/byte-code.c | 4 +- .../parser/js/js-parser-line-info-create.c | 10 +- .../js/js-parser-tagged-template-literal.c | 4 +- .../js/js-parser-tagged-template-literal.h | 6 +- jerry-core/parser/js/js-parser.c | 20 +- jerry-core/parser/js/js-scanner-internal.h | 3 +- jerry-core/parser/js/js-scanner-util.c | 2 +- jerry-core/vm/opcodes.c | 5 +- tools/check-doxygen.sh | 6 +- 31 files changed, 512 insertions(+), 208 deletions(-) diff --git a/.github/workflows/gh-actions.yml b/.github/workflows/gh-actions.yml index fd6af91ab6..85a8d32a06 100644 --- a/.github/workflows/gh-actions.yml +++ b/.github/workflows/gh-actions.yml @@ -17,12 +17,12 @@ jobs: python-version: '3.10' - run: sudo apt update # TODO: update checkers to current versions available in ubuntu 22.04 -# - run: sudo apt install doxygen clang-format-10 cppcheck python-serial - - run: sudo apt install pylint +# - run: sudo apt install clang-format-10 cppcheck python-serial + - run: sudo apt install pylint doxygen - run: $RUNNER --check-signed-off=gh-actions if: ${{ always() }} -# - run: $RUNNER --check-doxygen -# if: ${{ always() }} + - run: $RUNNER --check-doxygen + if: ${{ always() }} # - run: $RUNNER --check-format # if: ${{ always() }} - run: $RUNNER --check-license diff --git a/Doxyfile b/Doxyfile index 70f57d9516..e4fae6f98a 100644 --- a/Doxyfile +++ b/Doxyfile @@ -1,4 +1,4 @@ -# Doxyfile 1.8.9.1 +# Doxyfile 1.9.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -17,11 +17,11 @@ # Project related configuration options #--------------------------------------------------------------------------- -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv -# for the list of possible encodings. +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 @@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = "JerryScript" +PROJECT_NAME = JerryScript # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version @@ -58,7 +58,7 @@ PROJECT_LOGO = # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. -OUTPUT_DIRECTORY = "docs/doxygen" +OUTPUT_DIRECTORY = docs/doxygen # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and @@ -76,7 +76,7 @@ CREATE_SUBDIRS = NO # U+3044. # The default value is: NO. -# ALLOW_UNICODE_NAMES = NO +ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this @@ -93,6 +93,14 @@ CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English +# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all generated output in the proper direction. +# Possible values are: None, LTR, RTL and Context. +# The default value is: None. + +OUTPUT_TEXT_DIRECTION = None + # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. @@ -179,6 +187,16 @@ SHORT_NAMES = NO JAVADOC_AUTOBRIEF = YES +# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# such as +# /*************** +# as being the beginning of a Javadoc-style comment "banner". If set to NO, the +# Javadoc-style will behave just like regular comments and it will not be +# interpreted by doxygen. +# The default value is: NO. + +JAVADOC_BANNER = NO + # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus @@ -199,6 +217,14 @@ QT_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO +# By default Python docstrings are displayed as preformatted text and doxygen's +# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the +# doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as doxygen documentation. +# The default value is: YES. + +PYTHON_DOCSTRING = YES + # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. @@ -226,16 +252,15 @@ TAB_SIZE = 2 # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading # "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines. +# newlines (in the resulting output). You can put ^^ in the value part of an +# alias to insert a newline as if a physical newline was in the original file. +# When you need a literal { or } or , in the value part of an alias you have to +# escape them by means of a backslash (\), this can lead to conflicts with the +# commands \{ and \} for these it is advised to use the version @{ and @} or use +# a double escape (\\{ and \\}) ALIASES = -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For # instance, some of the names that are used will be different. The list of all @@ -264,28 +289,40 @@ OPTIMIZE_FOR_FORTRAN = NO OPTIMIZE_OUTPUT_VHDL = NO +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE = NO + # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: -# Fortran. In the later case the parser tries to guess whether the code is fixed -# or free formatted code, this is the default for Fortran type files), VHDL. For -# instance to make doxygen treat .inc files as Fortran files (default is PHP), -# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, +# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, +# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files). For instance to make doxygen treat .inc files +# as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. # # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. +# the files are not read by doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. +# documentation. See https://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. @@ -293,6 +330,15 @@ EXTENSION_MAPPING = MARKDOWN_SUPPORT = YES +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 5. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 5 + # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or @@ -318,7 +364,7 @@ BUILTIN_STL_SUPPORT = NO CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen # will parse them like normal C++ but will assume all classes use public instead # of private inheritance when no explicit protection keyword is present. # The default value is: NO. @@ -343,6 +389,13 @@ IDL_PROPERTY_SUPPORT = YES DISTRIBUTE_GROUP_DOC = YES +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent @@ -397,6 +450,19 @@ TYPEDEF_HIDES_STRUCT = NO LOOKUP_CACHE_SIZE = 0 +# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use +# during processing. When set to 0 doxygen will based this on the number of +# cores available in the system. You can set it explicitly to a value larger +# than 0 to get more control over the balance between CPU load and processing +# speed. At this moment only the input processing can be done using multiple +# threads. Since this is still an experimental feature the default is set to 1, +# which efficively disables parallel processing. Please report any issues you +# encounter. Generating dot graphs in parallel is controlled by the +# DOT_NUM_THREADS setting. +# Minimum value: 0, maximum value: 32, default value: 1. + +NUM_PROC_THREADS = 1 + #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- @@ -417,6 +483,12 @@ EXTRACT_ALL = NO EXTRACT_PRIVATE = YES +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual +# methods of a class will be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIV_VIRTUAL = NO + # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. @@ -454,6 +526,13 @@ EXTRACT_LOCAL_METHODS = YES EXTRACT_ANON_NSPACES = NO +# If this flag is set to YES, the name of an unnamed parameter in a declaration +# will be determined by the corresponding definition. By default unnamed +# parameters remain unnamed in the output. +# The default value is: YES. + +RESOLVE_UNNAMED_PARAMS = YES + # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation @@ -471,8 +550,8 @@ HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO, these declarations will be -# included in the documentation. +# declarations. If set to NO, these declarations will be included in the +# documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO @@ -491,11 +570,18 @@ HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. +# With the correct setting of option CASE_SENSE_NAMES doxygen will better be +# able to match the capabilities of the underlying filesystem. In case the +# filesystem is case sensitive (i.e. it supports files in the same directory +# whose names only differ in casing), the option must be set to YES to properly +# deal with such files in case they appear in the input. For filesystems that +# are not case sensitive the option should be be set to NO to properly deal with +# output files written for symbols that only differ in casing, such as for two +# classes, one named CLASS and the other named Class, and to also support +# references to files without having to specify the exact matching casing. On +# Windows (including Cygwin) and MacOS, users should typically set this option +# to NO, whereas on Linux or other Unix flavors it should typically be set to +# YES. # The default value is: system dependent. CASE_SENSE_NAMES = YES @@ -512,7 +598,7 @@ HIDE_SCOPE_NAMES = NO # YES the compound reference will be hidden. # The default value is: NO. -# HIDE_COMPOUND_REFERENCE= NO +HIDE_COMPOUND_REFERENCE= NO # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. @@ -682,7 +768,7 @@ LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. See also \cite for info how to create references. @@ -727,11 +813,21 @@ WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. +# parameter documentation, but not about the absence of documentation. If +# EXTRACT_ALL is set to YES then this flag will automatically be disabled. # The default value is: NO. WARN_NO_PARAMDOC = YES +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the doxygen process doxygen will return with a non-zero status. +# Possible values are: NO, YES and FAIL_ON_WARNINGS. +# The default value is: NO. + +WARN_AS_ERROR = NO + # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated @@ -755,30 +851,42 @@ WARN_LOGFILE = # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with -# spaces. +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = jerry-core jerry-ext jerry-port +INPUT = jerry-core \ + jerry-ext \ + jerry-port # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: http://www.gnu.org/software/libiconv) for the list of -# possible encodings. +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank the -# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, -# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, -# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, -# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, -# *.qsf, *.as and *.js. +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), +# *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl, +# *.ucf, *.qsf and *.ice. -FILE_PATTERNS = *.h *.c +FILE_PATTERNS = *.h \ + *.c # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. @@ -796,17 +904,16 @@ RECURSIVE = YES # FIXME: None of these files are excluded light-heartedly. They should be # removed one-by-one and warnings reported by doxygen should be fixed by those # who are familiar with the undocumented parts. -EXCLUDE = \ - jerry-core/ecma/base/ecma-globals.h \ - jerry-core/ecma/operations/ecma-exceptions.h \ - jerry-core/include/jerryscript-debugger-transport.h \ - jerry-core/jcontext/jcontext.h \ - jerry-core/parser/js/byte-code.h \ - jerry-core/parser/js/common.h \ - jerry-core/parser/js/js-lexer.h \ - jerry-core/parser/js/js-parser-internal.h \ - jerry-core/parser/regexp/re-parser.h \ - jerry-core/vm/vm-stack.h +EXCLUDE = jerry-core/ecma/base/ecma-globals.h \ + jerry-core/ecma/operations/ecma-exceptions.h \ + jerry-core/include/jerryscript-debugger-transport.h \ + jerry-core/jcontext/jcontext.h \ + jerry-core/parser/js/byte-code.h \ + jerry-core/parser/js/common.h \ + jerry-core/parser/js/js-lexer.h \ + jerry-core/parser/js/js-parser-internal.h \ + jerry-core/parser/regexp/re-parser.h \ + jerry-core/vm/vm-stack.h # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded @@ -875,6 +982,10 @@ IMAGE_PATH = # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. INPUT_FILTER = @@ -884,6 +995,10 @@ INPUT_FILTER = # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. FILTER_PATTERNS = @@ -936,7 +1051,7 @@ INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. +# entity all documented functions referencing it will be listed. # The default value is: NO. REFERENCED_BY_RELATION = NO @@ -968,12 +1083,12 @@ SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will # point to the HTML generated by the htags(1) tool instead of doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system -# (see http://www.gnu.org/software/global/global.html). You will need version +# (see https://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # @@ -996,15 +1111,21 @@ USE_HTAGS = NO VERBATIM_HEADERS = YES # If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. +# clang parser (see: +# http://clang.llvm.org/) for more accurate parsing at the cost of reduced +# performance. This can be particularly helpful with template rich C++ code for +# which doxygen's built-in parser lacks the necessary type information. # Note: The availability of this option depends on whether or not doxygen was -# compiled with the --with-libclang option. +# generated with the -Duse_libclang=ON option for CMake. # The default value is: NO. -# CLANG_ASSISTED_PARSING = NO +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled and the CLANG_ADD_INC_PATHS tag is set to +# YES then doxygen will add the directory of each input to the include path. +# The default value is: YES. + +CLANG_ADD_INC_PATHS = YES # If clang assisted parsing is enabled you can provide the compiler with command # line options that you would normally use when invoking the compiler. Note that @@ -1012,7 +1133,20 @@ VERBATIM_HEADERS = YES # specified with INPUT and INCLUDE_PATH. # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. -# CLANG_OPTIONS = +CLANG_OPTIONS = + +# If clang assisted parsing is enabled you can provide the clang parser with the +# path to the directory containing a file called compile_commands.json. This +# file is the compilation database (see: +# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the +# options used when the source files were built. This is equivalent to +# specifying the -p option to a clang tool, such as clang-check. These options +# will then be passed to the parser. Any options specified with CLANG_OPTIONS +# will be added as well. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. + +CLANG_DATABASE_PATH = #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index @@ -1025,13 +1159,6 @@ VERBATIM_HEADERS = YES ALPHABETICAL_INDEX = YES -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored @@ -1132,7 +1259,7 @@ HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. # Minimum value: 0, maximum value: 359, default value: 220. @@ -1168,6 +1295,17 @@ HTML_COLORSTYLE_GAMMA = 80 HTML_TIMESTAMP = NO +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via JavaScript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have JavaScript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = YES + # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. @@ -1191,13 +1329,14 @@ HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: http://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in +# environment (see: +# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To +# create a documentation set, doxygen will generate a Makefile in the HTML +# output directory. Running make will produce the docset in that directory and +# running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1236,8 +1375,8 @@ DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. +# (see: +# https://www.microsoft.com/en-us/download/details.aspx?id=21138) on Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML @@ -1267,7 +1406,7 @@ CHM_FILE = HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). +# (YES) or that it should be included in the main .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1312,7 +1451,8 @@ QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). +# (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1320,8 +1460,8 @@ QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- -# folders). +# Folders (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1329,30 +1469,30 @@ QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. +# The QHG_LOCATION tag can be used to specify the location (absolute path +# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to +# run qhelpgenerator on the generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = @@ -1429,6 +1569,17 @@ TREEVIEW_WIDTH = 250 EXT_LINKS_IN_WINDOW = NO +# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see +# https://inkscape.org) to generate formulas as SVG images instead of PNGs for +# the HTML output. These images will generally look nicer at scaled resolutions. +# Possible values are: png (the default) and svg (looks nicer but requires the +# pdf2svg or inkscape tool). +# The default value is: png. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FORMULA_FORMAT = png + # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful # doxygen run you need to manually remove any form_*.png images from the HTML @@ -1438,7 +1589,7 @@ EXT_LINKS_IN_WINDOW = NO FORMULA_FONTSIZE = 10 -# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are not # supported properly for IE 6.0, but are supported on all modern browsers. # @@ -1449,8 +1600,14 @@ FORMULA_FONTSIZE = 10 FORMULA_TRANSPARENT = YES +# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands +# to create new LaTeX commands to be used in formulas as building blocks. See +# the section "Including formulas" for details. + +FORMULA_MACROFILE = + # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# http://www.mathjax.org) which uses client side Javascript for the rendering +# https://www.mathjax.org) which uses client side JavaScript for the rendering # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path @@ -1462,7 +1619,7 @@ USE_MATHJAX = NO # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. # Possible values are: HTML-CSS (which is slower, but has the best # compatibility), NativeMML (i.e. MathML) and SVG. # The default value is: HTML-CSS. @@ -1477,8 +1634,8 @@ MATHJAX_FORMAT = HTML-CSS # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of -# MathJax from http://www.mathjax.org before deployment. -# The default value is: http://cdn.mathjax.org/mathjax/latest. +# MathJax from https://www.mathjax.org before deployment. +# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest @@ -1492,7 +1649,8 @@ MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. @@ -1520,7 +1678,7 @@ MATHJAX_CODEFILE = SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be -# implemented using a web server instead of a web client using Javascript. There +# implemented using a web server instead of a web client using JavaScript. There # are two flavors of web server based searching depending on the EXTERNAL_SEARCH # setting. When disabled, doxygen will generate a PHP script for searching and # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing @@ -1539,7 +1697,8 @@ SERVER_BASED_SEARCH = NO # # Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: http://xapian.org/). +# Xapian (see: +# https://xapian.org/). # # See the section "External Indexing and Searching" for details. # The default value is: NO. @@ -1552,8 +1711,9 @@ EXTERNAL_SEARCH = NO # # Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: http://xapian.org/). See the section "External Indexing and -# Searching" for details. +# Xapian (see: +# https://xapian.org/). See the section "External Indexing and Searching" for +# details. # This tag requires that the tag SEARCHENGINE is set to YES. SEARCHENGINE_URL = @@ -1604,21 +1764,35 @@ LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. # -# Note that when enabling USE_PDFLATEX this option is only used for generating -# bitmaps for formulas in the HTML output, but not in the Makefile that is -# written to the output directory. -# The default file is: latex. +# Note that when not enabling USE_PDFLATEX the default is latex when enabling +# USE_PDFLATEX the default is pdflatex and when in the later case latex is +# chosen this is overwritten by pdflatex. For specific output languages the +# default can have been set differently, this depends on the implementation of +# the output language. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate # index for LaTeX. +# Note: This tag is used in the Makefile / make.bat. +# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file +# (.tex). # The default file is: makeindex. # This tag requires that the tag GENERATE_LATEX is set to YES. MAKEINDEX_CMD_NAME = makeindex +# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to +# generate index for LaTeX. In case there is no backslash (\) as first character +# it will be automatically added in the LaTeX code. +# Note: This tag is used in the generated output file (.tex). +# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat. +# The default value is: makeindex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_MAKEINDEX_CMD = makeindex + # If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX # documents. This may be useful for small projects and may help to save some # trees in general. @@ -1637,9 +1811,12 @@ COMPACT_LATEX = NO PAPER_TYPE = a4 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names -# that should be included in the LaTeX output. To get the times font for -# instance you can specify -# EXTRA_PACKAGES=times +# that should be included in the LaTeX output. The package can be specified just +# by its name or with the correct syntax as to be used with the LaTeX +# \usepackage command. To get the times font for instance you can specify : +# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times} +# To use the option intlimits with the amsmath package you can specify: +# EXTRA_PACKAGES=[intlimits]{amsmath} # If left blank no extra packages will be included. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1681,7 +1858,7 @@ LATEX_FOOTER = # list). # This tag requires that the tag GENERATE_LATEX is set to YES. -# LATEX_EXTRA_STYLESHEET = +LATEX_EXTRA_STYLESHEET = # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the LATEX_OUTPUT output @@ -1700,9 +1877,11 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = YES -# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate -# the PDF file directly from the LaTeX files. Set this option to YES, to get a -# higher quality PDF documentation. +# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as +# specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX +# files. Set this option to YES, to get a higher quality PDF documentation. +# +# See also section LATEX_CMD_NAME for selecting the engine. # The default value is: YES. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1736,12 +1915,28 @@ LATEX_SOURCE_CODE = NO # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. See -# http://en.wikipedia.org/wiki/BibTeX and \cite for more info. +# https://en.wikipedia.org/wiki/BibTeX and \cite for more info. # The default value is: plain. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_BIB_STYLE = plain +# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated +# page will contain the date and time when the page was generated. Setting this +# to NO can help when comparing the output of multiple runs. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_TIMESTAMP = NO + +# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute) +# path from which the emoji images will be read. If a relative path is entered, +# it will be relative to the LATEX_OUTPUT directory. If left blank the +# LATEX_OUTPUT directory will be used. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EMOJI_DIRECTORY = + #--------------------------------------------------------------------------- # Configuration options related to the RTF output #--------------------------------------------------------------------------- @@ -1781,9 +1976,9 @@ COMPACT_RTF = NO RTF_HYPERLINKS = NO -# Load stylesheet definitions from file. Syntax is similar to doxygen's config -# file, i.e. a series of assignments. You only have to provide replacements, -# missing definitions are set to their default value. +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# configuration file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. # # See also section "Doxygen usage" for information on how to generate the # default style sheet that doxygen normally uses. @@ -1792,8 +1987,8 @@ RTF_HYPERLINKS = NO RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an RTF document. Syntax is -# similar to doxygen's config file. A template extensions file can be generated -# using doxygen -e rtf extensionFile. +# similar to doxygen's configuration file. A template extensions file can be +# generated using doxygen -e rtf extensionFile. # This tag requires that the tag GENERATE_RTF is set to YES. RTF_EXTENSIONS_FILE = @@ -1806,7 +2001,7 @@ RTF_EXTENSIONS_FILE = # The default value is: NO. # This tag requires that the tag GENERATE_RTF is set to YES. -# RTF_SOURCE_CODE = NO +RTF_SOURCE_CODE = NO #--------------------------------------------------------------------------- # Configuration options related to the man page output @@ -1841,7 +2036,7 @@ MAN_EXTENSION = .3 # MAN_EXTENSION with the initial . removed. # This tag requires that the tag GENERATE_MAN is set to YES. -# MAN_SUBDIR = +MAN_SUBDIR = # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it # will generate one additional man file for each entity documented in the real @@ -1879,6 +2074,13 @@ XML_OUTPUT = xml XML_PROGRAMLISTING = YES +# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include +# namespace members in file scope as well, matching the HTML output. +# The default value is: NO. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_NS_MEMB_FILE_SCOPE = NO + #--------------------------------------------------------------------------- # Configuration options related to the DOCBOOK output #--------------------------------------------------------------------------- @@ -1904,16 +2106,16 @@ DOCBOOK_OUTPUT = docbook # The default value is: NO. # This tag requires that the tag GENERATE_DOCBOOK is set to YES. -# DOCBOOK_PROGRAMLISTING = NO +DOCBOOK_PROGRAMLISTING = NO #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an -# AutoGen Definitions (see http://autogen.sf.net) file that captures the -# structure of the code including all documentation. Note that this feature is -# still experimental and incomplete at the moment. +# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures +# the structure of the code including all documentation. Note that this feature +# is still experimental and incomplete at the moment. # The default value is: NO. GENERATE_AUTOGEN_DEF = NO @@ -2013,7 +2215,8 @@ INCLUDE_FILE_PATTERNS = # recursively expanded use the := operator instead of the = operator. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -PREDEFINED = JERRY_STATIC_ASSERT(x,y)= JERRY_ATTR_FORMAT(x,y,z)= +PREDEFINED = "JERRY_STATIC_ASSERT(x,y)=" \ + "JERRY_ATTR_FORMAT(x,y,z)=" # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # tag can be used to specify a list of macro names that should be expanded. The @@ -2080,12 +2283,6 @@ EXTERNAL_GROUPS = YES EXTERNAL_PAGES = YES -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of 'which perl'). -# The default file (with absolute path) is: /usr/bin/perl. - -PERL_PATH = /usr/bin/perl - #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- @@ -2099,15 +2296,6 @@ PERL_PATH = /usr/bin/perl CLASS_DIAGRAMS = YES -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see: -# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. - -MSCGEN_PATH = - # You can include diagrams made with dia in doxygen documentation. Doxygen will # then run dia to produce the diagram and insert it in the documentation. The # DIA_PATH tag allows you to specify the directory where the dia binary resides. @@ -2205,10 +2393,32 @@ UML_LOOK = NO # but if the number exceeds 15, the total amount of fields shown is limited to # 10. # Minimum value: 0, maximum value: 100, default value: 10. -# This tag requires that the tag HAVE_DOT is set to YES. +# This tag requires that the tag UML_LOOK is set to YES. UML_LIMIT_NUM_FIELDS = 10 +# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and +# methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS +# tag is set to YES, doxygen will add type and arguments for attributes and +# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen +# will not generate fields with class member information in the UML graphs. The +# class diagrams will look similar to the default class diagrams but using UML +# notation for the relationships. +# Possible values are: NO, YES and NONE. +# The default value is: NO. +# This tag requires that the tag UML_LOOK is set to YES. + +DOT_UML_DETAILS = NO + +# The DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters +# to display on a single line. If the actual line length exceeds this threshold +# significantly it will wrapped across multiple lines. Some heuristics are apply +# to avoid ugly line breaks. +# Minimum value: 0, maximum value: 1000, default value: 17. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_WRAP_THRESHOLD = 17 + # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and # collaboration graphs will show the relations between templates and their # instances. @@ -2240,7 +2450,8 @@ INCLUDED_BY_GRAPH = YES # # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected -# functions only using the \callgraph command. +# functions only using the \callgraph command. Disabling a call graph can be +# accomplished by means of the command \hidecallgraph. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2251,7 +2462,8 @@ CALL_GRAPH = NO # # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable caller graphs for selected -# functions only using the \callergraph command. +# functions only using the \callergraph command. Disabling a caller graph can be +# accomplished by means of the command \hidecallergraph. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2274,13 +2486,17 @@ GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. +# generated by dot. For an explanation of the image formats see the section +# output formats in the documentation of the dot tool (Graphviz (see: +# http://www.graphviz.org/)). # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order # to make the SVG files visible in IE 9+ (other browsers do not have this # requirement). # Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd, # png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo, -# gif:cairo:gd, gif:gd, gif:gd:gd and svg. +# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo, +# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and +# png:gdiplus:gdiplus. # The default value is: png. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2329,12 +2545,17 @@ DIAFILE_DIRS = # generate a warning when it encounters a \startuml command in this case and # will not generate output for the diagram. -# PLANTUML_JAR_PATH = +PLANTUML_JAR_PATH = + +# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a +# configuration file for plantuml. + +PLANTUML_CFG_FILE = # When using plantuml, the specified paths are searched for files specified by # the !include statement in a plantuml block. -# PLANTUML_INCLUDE_PATH = +PLANTUML_INCLUDE_PATH = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes @@ -2389,9 +2610,11 @@ DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot +# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate # files that are used to generate the various graphs. +# +# Note: This setting is not only used for dot files but also for msc and +# plantuml temporary files. # The default value is: YES. -# This tag requires that the tag HAVE_DOT is set to YES. DOT_CLEANUP = YES diff --git a/jerry-core/api/jerry-snapshot.c b/jerry-core/api/jerry-snapshot.c index 35478e4b54..924dae8631 100644 --- a/jerry-core/api/jerry-snapshot.c +++ b/jerry-core/api/jerry-snapshot.c @@ -31,6 +31,10 @@ #include "lit-char-helpers.h" #include "re-compiler.h" +/** \addtogroup jerrysnapshot Jerry snapshot operations + * @{ + */ + #if JERRY_SNAPSHOT_SAVE || JERRY_SNAPSHOT_EXEC /** @@ -88,9 +92,6 @@ typedef struct bool class_found; } snapshot_globals_t; -/** \addtogroup jerrysnapshot Jerry snapshot operations - * @{ - */ /** * Write data into the specified buffer. @@ -1045,10 +1046,6 @@ jerry_exec_snapshot (const uint32_t *snapshot_p, /**< snapshot */ #endif /* JERRY_SNAPSHOT_EXEC */ } /* jerry_exec_snapshot */ -/** - * @} - */ - #if JERRY_SNAPSHOT_SAVE /** @@ -1716,3 +1713,7 @@ jerry_get_literals_from_snapshot (const uint32_t *snapshot_p, /**< input snapsho return 0; #endif /* JERRY_SNAPSHOT_SAVE */ } /* jerry_get_literals_from_snapshot */ + +/** + * @} + */ diff --git a/jerry-core/api/jerryscript.c b/jerry-core/api/jerryscript.c index 15a426f4bd..60f8023fd0 100644 --- a/jerry-core/api/jerryscript.c +++ b/jerry-core/api/jerryscript.c @@ -115,6 +115,8 @@ JERRY_STATIC_ASSERT (((NUMBER_ARITHMETIC_SUBTRACTION + ECMA_NUMBER_ARITHMETIC_OP * The API could not be invoked in the following cases: * - before jerry_init and after jerry_cleanup * - between enter to and return from a native free callback + * + * @return void */ static inline void JERRY_ATTR_ALWAYS_INLINE jerry_assert_api_enabled (void) @@ -124,6 +126,8 @@ jerry_assert_api_enabled (void) /** * Turn on API availability + * + * @return void */ static inline void JERRY_ATTR_ALWAYS_INLINE jerry_api_enable (void) @@ -135,6 +139,8 @@ jerry_api_enable (void) /** * Turn off API availability + * + * @return void */ static inline void JERRY_ATTR_ALWAYS_INLINE jerry_api_disable (void) diff --git a/jerry-core/ecma/base/ecma-alloc.c b/jerry-core/ecma/base/ecma-alloc.c index 970b05ee80..05a505259a 100644 --- a/jerry-core/ecma/base/ecma-alloc.c +++ b/jerry-core/ecma/base/ecma-alloc.c @@ -61,6 +61,8 @@ ecma_alloc_number (void) /** * Dealloc memory from an ecma-number + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_dealloc_number (ecma_number_t *number_p) /**< number to be freed */ @@ -85,6 +87,8 @@ ecma_alloc_object (void) /** * Dealloc memory from an ecma-object + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_dealloc_object (ecma_object_t *object_p) /**< object to be freed */ @@ -113,6 +117,8 @@ ecma_alloc_extended_object (size_t size) /**< size of object */ /** * Dealloc memory of an extended object + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_dealloc_extended_object (ecma_object_t *object_p, /**< extended object */ @@ -142,6 +148,8 @@ ecma_alloc_string (void) /** * Dealloc memory from ecma-string descriptor + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_dealloc_string (ecma_string_t *string_p) /**< string to be freed */ @@ -170,6 +178,8 @@ ecma_alloc_extended_string (void) /** * Dealloc memory from extended ecma-string descriptor + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_dealloc_extended_string (ecma_extended_string_t *ext_string_p) /**< extended string to be freed */ @@ -198,6 +208,8 @@ ecma_alloc_external_string (void) /** * Dealloc memory from external ecma-string descriptor + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_dealloc_external_string (ecma_external_string_t *ext_string_p) /**< external string to be freed */ @@ -226,6 +238,8 @@ ecma_alloc_string_buffer (size_t size) /**< size of string */ /** * Dealloc memory of a string with character data + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_dealloc_string_buffer (ecma_string_t *string_p, /**< string with data */ @@ -255,6 +269,8 @@ ecma_alloc_property_pair (void) /** * Dealloc memory of an ecma-property + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_dealloc_property_pair (ecma_property_pair_t *property_pair_p) /**< property pair to be freed */ diff --git a/jerry-core/ecma/base/ecma-gc.c b/jerry-core/ecma/base/ecma-gc.c index 8a9fb71b47..c882b76dec 100644 --- a/jerry-core/ecma/base/ecma-gc.c +++ b/jerry-core/ecma/base/ecma-gc.c @@ -128,6 +128,8 @@ ecma_init_gc_info (ecma_object_t *object_p) /**< object */ /** * Increase reference counter of an object + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_ref_object_inline (ecma_object_t *object_p) /**< object */ @@ -153,6 +155,8 @@ ecma_ref_object (ecma_object_t *object_p) /**< object */ /** * Decrease reference counter of an object + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_deref_object (ecma_object_t *object_p) /**< object */ @@ -466,6 +470,8 @@ ecma_gc_mark_compiled_code (ecma_value_t script_value) /**< script value */ /** * Mark objects referenced by bound function object. + * + * @return void */ static void JERRY_ATTR_NOINLINE ecma_gc_mark_bound_function_object (ecma_object_t *object_p) /**< bound function object */ diff --git a/jerry-core/ecma/base/ecma-helpers-collection.c b/jerry-core/ecma/base/ecma-helpers-collection.c index 50afc5c545..52de0c0397 100644 --- a/jerry-core/ecma/base/ecma-helpers-collection.c +++ b/jerry-core/ecma/base/ecma-helpers-collection.c @@ -49,6 +49,8 @@ ecma_new_collection (void) /** * Deallocate a collection of ecma values without freeing it's values + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_collection_destroy (ecma_collection_t *collection_p) /**< value collection */ diff --git a/jerry-core/ecma/base/ecma-helpers-errol.c b/jerry-core/ecma/base/ecma-helpers-errol.c index 14148ed649..62190f8ac7 100644 --- a/jerry-core/ecma/base/ecma-helpers-errol.c +++ b/jerry-core/ecma/base/ecma-helpers-errol.c @@ -78,6 +78,8 @@ typedef struct /** * Normalize the number by factoring in the error. + * + * @return void */ static inline void JERRY_ATTR_ALWAYS_INLINE ecma_normalize_high_prec_data (ecma_high_prec_t *hp_data_p) /**< [in, out] float pair */ @@ -90,6 +92,8 @@ ecma_normalize_high_prec_data (ecma_high_prec_t *hp_data_p) /**< [in, out] float /** * Multiply the high-precision number by ten. + * + * @return void */ static inline void JERRY_ATTR_ALWAYS_INLINE ecma_multiply_high_prec_by_10 (ecma_high_prec_t *hp_data_p) /**< [in, out] high-precision number */ diff --git a/jerry-core/ecma/base/ecma-helpers-string.c b/jerry-core/ecma/base/ecma-helpers-string.c index 294bbaa87c..449410a3ee 100644 --- a/jerry-core/ecma/base/ecma-helpers-string.c +++ b/jerry-core/ecma/base/ecma-helpers-string.c @@ -849,6 +849,8 @@ ecma_concat_ecma_strings (ecma_string_t *string1_p, /**< first ecma-string */ /** * Increase reference counter of non-direct ecma-string. + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_ref_ecma_string_non_direct (ecma_string_t *string_p) /**< string descriptor */ @@ -895,6 +897,8 @@ ecma_ref_ecma_string (ecma_string_t *string_p) /**< string descriptor */ /** * Decrease reference counter and deallocate a non-direct ecma-string * if the counter becomes zero. + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_deref_ecma_string_non_direct (ecma_string_t *string_p) /**< ecma-string */ @@ -1168,6 +1172,8 @@ ecma_string_copy_to_buffer (const ecma_string_t *string_p, /**< ecma-string desc * Convert ecma-string's contents to a cesu-8 string and put it to the buffer. * It is the caller's responsibility to make sure that the string fits in the buffer. * Check if the size of the string is equal with the size of the buffer. + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_string_to_cesu8_bytes (const ecma_string_t *string_desc_p, /**< ecma-string descriptor */ @@ -2292,6 +2298,8 @@ ecma_string_trim_back (const lit_utf8_byte_t *start_p, /**< current string's sta * Used by: * - ecma_string_trim * - ecma_utf8_string_to_number + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_string_trim_helper (const lit_utf8_byte_t **utf8_str_p, /**< [in, out] current string position */ diff --git a/jerry-core/ecma/base/ecma-helpers-value.c b/jerry-core/ecma/base/ecma-helpers-value.c index cc79baa9c0..33c7317ee7 100644 --- a/jerry-core/ecma/base/ecma-helpers-value.c +++ b/jerry-core/ecma/base/ecma-helpers-value.c @@ -939,6 +939,8 @@ ecma_copy_value_if_not_object (ecma_value_t value) /**< value description */ /** * Increase reference counter of a value if it is an object. + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_ref_if_object (ecma_value_t value) /**< value description */ @@ -951,6 +953,8 @@ ecma_ref_if_object (ecma_value_t value) /**< value description */ /** * Decrease reference counter of a value if it is an object. + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_deref_if_object (ecma_value_t value) /**< value description */ @@ -1136,6 +1140,8 @@ ecma_free_value (ecma_value_t value) /**< value description */ * faster for direct values since no function call is performed. * It also increases the binary size so it is recommended for * critical code paths only. + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_fast_free_value (ecma_value_t value) /**< value description */ @@ -1160,6 +1166,8 @@ ecma_free_value_if_not_object (ecma_value_t value) /**< value description */ /** * Free an ecma-value object + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_free_object (ecma_value_t value) /**< value description */ @@ -1169,6 +1177,8 @@ ecma_free_object (ecma_value_t value) /**< value description */ /** * Free an ecma-value number + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_free_number (ecma_value_t value) /**< value description */ diff --git a/jerry-core/ecma/base/ecma-helpers.c b/jerry-core/ecma/base/ecma-helpers.c index c51be10d8e..94f6ac39a6 100644 --- a/jerry-core/ecma/base/ecma-helpers.c +++ b/jerry-core/ecma/base/ecma-helpers.c @@ -917,6 +917,8 @@ ecma_assert_object_contains_the_property (const ecma_object_t *object_p, /**< ec * * Note: * value previously stored in the property is freed + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE ecma_named_data_property_assign_value (ecma_object_t *obj_p, /**< object */ diff --git a/jerry-core/ecma/base/ecma-line-info.c b/jerry-core/ecma/base/ecma-line-info.c index 5288d9310c..4128d70514 100644 --- a/jerry-core/ecma/base/ecma-line-info.c +++ b/jerry-core/ecma/base/ecma-line-info.c @@ -17,8 +17,6 @@ #include "ecma-helpers.h" -#if JERRY_LINE_INFO - /** \addtogroup ecma ECMA * @{ * @@ -26,6 +24,8 @@ * @{ */ +#if JERRY_LINE_INFO + /* The layout of the structure is defined in js-parser-line-info-create.c */ JERRY_STATIC_ASSERT ((ECMA_LINE_INFO_COLUMN_DEFAULT - 1) == ((ECMA_LINE_INFO_ENCODE_TWO_BYTE >> 1) - 1), diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-json.c b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-json.c index 7b926c7ae2..92d09ed3df 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-json.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-json.c @@ -55,9 +55,9 @@ ecma_json_has_object_in_stack (ecma_json_occurrence_stack_item_t *stack_p, /**< return false; } /* ecma_json_has_object_in_stack */ -#endif /* JERRY_BUILTIN_JSON */ - /** * @} * @} */ + +#endif /* JERRY_BUILTIN_JSON */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.h b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.h index 482cf8faba..89cf45e88f 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.h @@ -261,7 +261,8 @@ ecma_value_t ecma_builtin_helper_error_dispatch_call (jerry_error_t error_type, typedef ecma_value_t (*ecma_builtin_helper_sort_compare_fn_t) (ecma_value_t lhs, /**< left value */ ecma_value_t rhs, /**< right value */ ecma_value_t compare_func, /**< compare function */ - ecma_object_t *array_buffer_p); /**< arrayBuffer */ + ecma_object_t *array_buffer_p /**< arrayBuffer */ + ); ecma_value_t ecma_builtin_helper_array_merge_sort_helper (ecma_value_t *array_p, uint32_t length, diff --git a/jerry-core/ecma/operations/ecma-objects.c b/jerry-core/ecma/operations/ecma-objects.c index dfe7215e8e..cb3bc06876 100644 --- a/jerry-core/ecma/operations/ecma-objects.c +++ b/jerry-core/ecma/operations/ecma-objects.c @@ -3267,6 +3267,8 @@ ecma_op_ordinary_object_is_extensible (ecma_object_t *object_p) /**< object */ /** * Set value of [[Extensible]] object's internal property. + * + * @return void */ void JERRY_ATTR_NOINLINE ecma_op_ordinary_object_prevent_extensions (ecma_object_t *object_p) /**< object */ diff --git a/jerry-core/ecma/operations/ecma-promise-object.c b/jerry-core/ecma/operations/ecma-promise-object.c index 092ed773d7..b1051781fb 100644 --- a/jerry-core/ecma/operations/ecma-promise-object.c +++ b/jerry-core/ecma/operations/ecma-promise-object.c @@ -68,6 +68,8 @@ ecma_promise_get_result (ecma_object_t *obj_p) /**< points to promise object */ /** * Set the PromiseResult of promise. + * + * @return void */ static inline void JERRY_ATTR_ALWAYS_INLINE ecma_promise_set_result (ecma_object_t *obj_p, /**< points to promise object */ @@ -97,6 +99,8 @@ ecma_promise_get_flags (ecma_object_t *obj_p) /**< points to promise object */ /** * Set the PromiseState of promise. + * + * @return void */ static inline void JERRY_ATTR_ALWAYS_INLINE ecma_promise_set_state (ecma_object_t *obj_p, /**< points to promise object */ diff --git a/jerry-core/ecma/operations/ecma-shared-arraybuffer-object.h b/jerry-core/ecma/operations/ecma-shared-arraybuffer-object.h index 1053a4b94e..65b480edc8 100644 --- a/jerry-core/ecma/operations/ecma-shared-arraybuffer-object.h +++ b/jerry-core/ecma/operations/ecma-shared-arraybuffer-object.h @@ -18,8 +18,6 @@ #include "ecma-globals.h" -#if JERRY_BUILTIN_SHAREDARRAYBUFFER - /** \addtogroup ecma ECMA * @{ * @@ -27,6 +25,8 @@ * @{ */ +#if JERRY_BUILTIN_SHAREDARRAYBUFFER + ecma_value_t ecma_op_create_shared_arraybuffer_object (const ecma_value_t *, uint32_t); /** diff --git a/jerry-core/ecma/operations/ecma-string-object.c b/jerry-core/ecma/operations/ecma-string-object.c index 597d1868d6..95b78c9a09 100644 --- a/jerry-core/ecma/operations/ecma-string-object.c +++ b/jerry-core/ecma/operations/ecma-string-object.c @@ -98,8 +98,6 @@ ecma_op_create_string_object (const ecma_value_t *arguments_list_p, /**< list of /** * List names of a String object's lazy instantiated properties - * - * @return string values collection */ void ecma_op_string_list_lazy_property_names (ecma_object_t *obj_p, /**< a String object */ diff --git a/jerry-core/include/jerryscript-port.h b/jerry-core/include/jerryscript-port.h index 7317a12b2a..1b882488dc 100644 --- a/jerry-core/include/jerryscript-port.h +++ b/jerry-core/include/jerryscript-port.h @@ -55,9 +55,8 @@ typedef enum * * A libc-based port may implement this with exit() or abort(), or both. * - * Note: This function is expected to not return. - * * @param code: the cause of the error. + * @return This function is expected to not return. */ void JERRY_ATTR_NORETURN jerry_port_fatal (jerry_fatal_code_t code); @@ -115,8 +114,6 @@ struct jerry_context_t *jerry_port_context_get (void); * * This port function is called by jerry_cleanup when JERRY_EXTERNAL_CONTEXT is enabled. * Otherwise this function is not used. - * - * @return the pointer to the engine context. */ void jerry_port_context_free (void); diff --git a/jerry-core/jcontext/jcontext.c b/jerry-core/jcontext/jcontext.c index 7f92a332a3..677d1e1663 100644 --- a/jerry-core/jcontext/jcontext.c +++ b/jerry-core/jcontext/jcontext.c @@ -45,6 +45,8 @@ jcontext_has_pending_abort (void) /** * Set the abort flag for the context. + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE jcontext_set_abort_flag (bool is_abort) /**< true - if the abort flag should be set @@ -64,6 +66,8 @@ jcontext_set_abort_flag (bool is_abort) /**< true - if the abort flag should be /** * Set the exception flag for the context. + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE jcontext_set_exception_flag (bool is_exception) /**< true - if the exception flag should be set @@ -81,6 +85,8 @@ jcontext_set_exception_flag (bool is_exception) /**< true - if the exception fla /** * Raise exception from the given error value. + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE jcontext_raise_exception (ecma_value_t error) /**< error to raise */ diff --git a/jerry-core/jmem/jmem-heap.c b/jerry-core/jmem/jmem-heap.c index ce790a49a5..fa83605cff 100644 --- a/jerry-core/jmem/jmem-heap.c +++ b/jerry-core/jmem/jmem-heap.c @@ -48,7 +48,14 @@ #define JMEM_HEAP_GET_OFFSET_FROM_ADDR(p) ((uint32_t) (p)) #define JMEM_HEAP_GET_ADDR_FROM_OFFSET(u) ((jmem_heap_free_t *) (u)) #else /* !ECMA_VALUE_CAN_STORE_UINTPTR_VALUE_DIRECTLY */ +/** + * Get heap offset from address + */ #define JMEM_HEAP_GET_OFFSET_FROM_ADDR(p) ((uint32_t) ((uint8_t *) (p) -JERRY_HEAP_CONTEXT (area))) + +/** + * Get heap address from offset + */ #define JMEM_HEAP_GET_ADDR_FROM_OFFSET(u) ((jmem_heap_free_t *) (JERRY_HEAP_CONTEXT (area) + (u))) #endif /* ECMA_VALUE_CAN_STORE_UINTPTR_VALUE_DIRECTLY */ /** @@ -302,6 +309,9 @@ jmem_heap_gc_and_alloc_block (const size_t size, /**< required memory size */ /** * Internal method for allocating a memory block. + * + * @return NULL, if the required memory size is 0 or not enough memory, or + * pointer to the allocated memory block, if allocation is successful */ extern inline void *JERRY_ATTR_HOT JERRY_ATTR_ALWAYS_INLINE jmem_heap_alloc_block_internal (const size_t size) /**< required memory size */ @@ -449,10 +459,12 @@ jmem_heap_insert_block (jmem_heap_free_t *block_p, /**< block to insert */ /** * Internal method for freeing a memory block. + * + * @return void */ void JERRY_ATTR_HOT jmem_heap_free_block_internal (void *ptr, /**< pointer to beginning of data space of the block */ - const size_t size) /**< size of allocated region */ + const size_t size /**< size of allocated region */) { JERRY_ASSERT (size > 0); JERRY_ASSERT (JERRY_CONTEXT (jmem_heap_limit) >= JERRY_CONTEXT (jmem_heap_allocated_size)); @@ -683,6 +695,8 @@ jmem_heap_realloc_block (void *ptr, /**< memory region to reallocate */ /** * Free memory block + * + * @return void */ extern inline void JERRY_ATTR_HOT JERRY_ATTR_ALWAYS_INLINE jmem_heap_free_block (void *ptr, /**< pointer to beginning of data space of the block */ diff --git a/jerry-core/jmem/jmem-poolman.c b/jerry-core/jmem/jmem-poolman.c index 9fded49e70..7004b881cb 100644 --- a/jerry-core/jmem/jmem-poolman.c +++ b/jerry-core/jmem/jmem-poolman.c @@ -114,6 +114,8 @@ jmem_pools_alloc (size_t size) /**< size of the chunk */ /** * Free the chunk + * + * @return void */ extern inline void JERRY_ATTR_HOT JERRY_ATTR_ALWAYS_INLINE jmem_pools_free (void *chunk_p, /**< pointer to the chunk */ diff --git a/jerry-core/parser/js/byte-code.c b/jerry-core/parser/js/byte-code.c index 4ba63cd3d1..e631aad8cd 100644 --- a/jerry-core/parser/js/byte-code.c +++ b/jerry-core/parser/js/byte-code.c @@ -30,8 +30,6 @@ JERRY_STATIC_ASSERT (offsetof (cbc_uint8_arguments_t, script_value) == offsetof JERRY_STATIC_ASSERT (CBC_END == 238, number_of_cbc_opcodes_changed); JERRY_STATIC_ASSERT (CBC_EXT_END == 167, number_of_cbc_ext_opcodes_changed); -#if JERRY_PARSER || JERRY_PARSER_DUMP_BYTE_CODE - /** \addtogroup parser Parser * @{ * @@ -42,6 +40,8 @@ JERRY_STATIC_ASSERT (CBC_EXT_END == 167, number_of_cbc_ext_opcodes_changed); * @{ */ +#if JERRY_PARSER || JERRY_PARSER_DUMP_BYTE_CODE + /** * Compact bytecode definition */ diff --git a/jerry-core/parser/js/js-parser-line-info-create.c b/jerry-core/parser/js/js-parser-line-info-create.c index e26b13ed99..4244eb511a 100644 --- a/jerry-core/parser/js/js-parser-line-info-create.c +++ b/jerry-core/parser/js/js-parser-line-info-create.c @@ -17,11 +17,7 @@ #include "js-parser-internal.h" -#if JERRY_PARSER - -#if JERRY_LINE_INFO - -/* \addtogroup parser Parser +/** \addtogroup parser Parser * @{ * * \addtogroup jsparser JavaScript @@ -31,6 +27,10 @@ * @{ */ +#if JERRY_PARSER + +#if JERRY_LINE_INFO + /* * The line-info data structure uses two number encodings: * diff --git a/jerry-core/parser/js/js-parser-tagged-template-literal.c b/jerry-core/parser/js/js-parser-tagged-template-literal.c index f140526b93..f2ce91ec44 100644 --- a/jerry-core/parser/js/js-parser-tagged-template-literal.c +++ b/jerry-core/parser/js/js-parser-tagged-template-literal.c @@ -23,7 +23,7 @@ #include "js-lexer.h" -/* \addtogroup parser Parser +/** \addtogroup parser Parser * @{ * * \addtogroup jsparser JavaScript @@ -135,7 +135,7 @@ parser_new_tagged_template_literal (ecma_object_t **raw_strings_p) /**< [out] ra * Set integrity level of the given template array object to "frozen" */ static void -parser_tagged_template_literal_freeze_array (ecma_object_t *obj_p) +parser_tagged_template_literal_freeze_array (ecma_object_t *obj_p /**< template object */) { JERRY_ASSERT (ecma_get_object_type (obj_p) == ECMA_OBJECT_TYPE_ARRAY); ecma_op_ordinary_object_prevent_extensions (obj_p); diff --git a/jerry-core/parser/js/js-parser-tagged-template-literal.h b/jerry-core/parser/js/js-parser-tagged-template-literal.h index 9bc94938d8..919cc1b530 100644 --- a/jerry-core/parser/js/js-parser-tagged-template-literal.h +++ b/jerry-core/parser/js/js-parser-tagged-template-literal.h @@ -16,7 +16,7 @@ #ifndef ECMA_TAGGED_TEMPLATE_LITERAL_H #define ECMA_TAGGED_TEMPLATE_LITERAL_H -/* \addtogroup parser Parser +/** \addtogroup parser Parser * @{ * * \addtogroup jsparser JavaScript @@ -40,10 +40,10 @@ void parser_tagged_template_literal_append_strings (parser_context_t *context_p, void parser_tagged_template_literal_finalize (ecma_object_t *template_obj_p, ecma_object_t *raw_strings_p); -#endif /* ECMA_TAGGED_TEMPLATE_LITERAL_H */ - /** * @} * @} * @} */ + +#endif /* ECMA_TAGGED_TEMPLATE_LITERAL_H */ diff --git a/jerry-core/parser/js/js-parser.c b/jerry-core/parser/js/js-parser.c index 17a2b1c4bd..ecf7cd39e6 100644 --- a/jerry-core/parser/js/js-parser.c +++ b/jerry-core/parser/js/js-parser.c @@ -24,6 +24,16 @@ #include "js-parser-internal.h" #include "lit-char-helpers.h" +/** \addtogroup parser Parser + * @{ + * + * \addtogroup jsparser JavaScript + * @{ + * + * \addtogroup jsparser_parser Parser + * @{ + */ + #if JERRY_PARSER JERRY_STATIC_ASSERT ((int) ECMA_PARSE_STRICT_MODE == (int) PARSER_IS_STRICT, @@ -36,16 +46,6 @@ JERRY_STATIC_ASSERT (PARSER_RESTORE_STATUS_FLAGS (ECMA_PARSE_ALLOW_SUPER) == PAR JERRY_STATIC_ASSERT (PARSER_RESTORE_STATUS_FLAGS (ECMA_PARSE_FUNCTION_CONTEXT) == 0, ecma_parse_function_context_must_not_be_transformed); -/** \addtogroup parser Parser - * @{ - * - * \addtogroup jsparser JavaScript - * @{ - * - * \addtogroup jsparser_parser Parser - * @{ - */ - /** * Compute real literal indicies. * diff --git a/jerry-core/parser/js/js-scanner-internal.h b/jerry-core/parser/js/js-scanner-internal.h index 800399dca2..a8dff2b98c 100644 --- a/jerry-core/parser/js/js-scanner-internal.h +++ b/jerry-core/parser/js/js-scanner-internal.h @@ -16,7 +16,7 @@ #ifndef JS_SCANNER_INTERNAL_H #define JS_SCANNER_INTERNAL_H -/* \addtogroup parser Parser +/** \addtogroup parser Parser * @{ * * \addtogroup jsparser JavaScript @@ -355,7 +355,6 @@ scanner_literal_pool_t * scanner_push_literal_pool (parser_context_t *context_p, scanner_context_t *scanner_context_p, uint16_t status_flags); void scanner_pop_literal_pool (parser_context_t *context_p, scanner_context_t *scanner_context_p); void scanner_filter_arguments (parser_context_t *context_p, scanner_context_t *scanner_context_p); -void scanner_construct_global_block (parser_context_t *context_p, scanner_context_t *scanner_context_p); lexer_lit_location_t *scanner_add_custom_literal (parser_context_t *context_p, scanner_literal_pool_t *literal_pool_p, const lexer_lit_location_t *literal_location_p); diff --git a/jerry-core/parser/js/js-scanner-util.c b/jerry-core/parser/js/js-scanner-util.c index 3d58a779ca..5f1025eb21 100644 --- a/jerry-core/parser/js/js-scanner-util.c +++ b/jerry-core/parser/js/js-scanner-util.c @@ -59,7 +59,7 @@ JERRY_STATIC_ASSERT (PARSER_SCOPE_STACK_IS_CONST_REG == PARSER_SCOPE_STACK_IS_LO * Raise a scanner error. */ void -scanner_raise_error (parser_context_t *context_p) /**< context */ +scanner_raise_error (parser_context_t *context_p /**< context */) { PARSER_THROW (context_p->try_buffer); /* Should never been reached. */ diff --git a/jerry-core/vm/opcodes.c b/jerry-core/vm/opcodes.c index 85c1f65692..2bcf59f009 100644 --- a/jerry-core/vm/opcodes.c +++ b/jerry-core/vm/opcodes.c @@ -1181,6 +1181,8 @@ opfunc_create_implicit_class_constructor (uint8_t opcode, /**< current cbc opcod /** * Set the [[HomeObject]] attribute of the given functon object + * + * @return void */ extern inline void JERRY_ATTR_ALWAYS_INLINE opfunc_set_home_object (ecma_object_t *func_p, /**< function object */ @@ -1636,9 +1638,6 @@ opfunc_collect_private_properties (ecma_value_t constructor, /**< constructor */ * ClassDefinitionEvaluation environment initialization part * * See also: ECMAScript v6, 14.5.14 - * - * @return - ECMA_VALUE_ERROR - if the operation fails - * ECMA_VALUE_EMPTY - otherwise */ void opfunc_push_class_environment (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ diff --git a/tools/check-doxygen.sh b/tools/check-doxygen.sh index dbc353ca2c..0547e11bcf 100755 --- a/tools/check-doxygen.sh +++ b/tools/check-doxygen.sh @@ -14,7 +14,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -doxygen 2>&1 >/dev/null | head -n 1000 | tee doxygen.log +doxygen 2>&1 >/dev/null \ + | grep -Pv "^\/.+\.h:\d+: warning: Member .+ \(function\) of group \w+ is not documented.$" \ + | grep -Pv "^\/.+\.h:\d+: warning: documented empty return type of \w+$" \ + | grep -Pv "^\/.+\.h:\d+: warning: argument '.+' from the argument list of .+ has multiple @param documentation sections$" \ + | head -n 1000 | tee doxygen.log if [ -s doxygen.log ] then EXIT=1