提交 32c4f9c2 编写于 作者: M mamingshuai

update openharmony 1.0.1

上级 0f30b3fd

要显示的变更太多。

To preserve performance only 1000 of 1000+ files are displayed.
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
......@@ -11,13 +11,407 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import("//build/lite/config/component/lite_component.gni")
if (defined(ohos_lite)) { # is on lite Os for ipcamera
import("//build/lite/config/component/lite_component.gni")
lite_component("jerry_engine") {
lite_component("jerry_engine") {
features = [
"jerry-core",
"jerry-libm",
"jerry-ext",
"jerry-port/default:jerry-port-default"
"jerry-core",
"jerry-libm",
"jerry-ext",
"jerry-port/default:jerry-port-default",
]
}
} else {
import("//build/ohos.gni")
config("jerryscript_config") {
defines = [
"JERRY_SNAPSHOT_SAVE=1",
"JERRY_COMMIT_HASH=\"ignored\"",
"JERRY_NDEBUG",
"JERRY_HEAPDUMP",
"JERRY_REF_TRACKER",
]
cflags = [
"-Wno-unused-function",
"-Wno-sign-compare",
]
include_dirs = [ "." ]
}
config("jerryscript_simulator") {
defines = [
"JERRY_CPOINTER_32_BIT=0",
"JERRY_DEBUGGER=1",
"JERRY_ES2015=0",
"JERRY_EXTERNAL_CONTEXT=1",
"JERRY_FUNCTION_BACKTRACE",
"JERRY_FUNCTION_NAME",
"JERRY_GC_LIMIT=(0)",
"JERRY_HEAPDUMP",
"JERRY_LINE_INFO=1",
"JERRY_MEM_GC_BEFORE_EACH_ALLOC=0",
"JERRY_NDEBUG",
"JERRY_PARSER=1",
"JERRY_PARSER_DUMP_BYTE_CODE=0",
"JERRY_REF_TRACKER",
"JERRY_REGEXP_DUMP_BYTE_CODE=0",
"JERRY_REGEXP_STRICT_MODE=0",
"JERRY_STACK_LIMIT=(0)",
"JERRY_SYSTEM_ALLOCATOR=0",
"JERRY_VALGRIND=0",
"JERRY_VM_EXEC_STOP=0",
]
cflags = [
"-Wno-unused-function",
"-Wno-sign-compare",
"-Wno-error", # jerry add
]
include_dirs = [ "." ]
}
jerry_core_sources = [
"jerry-core/api/jerry-debugger-transport.c",
"jerry-core/api/jerry-debugger.c",
"jerry-core/api/jerry-snapshot.c",
"jerry-core/api/jerry.c",
"jerry-core/debugger/debugger.c",
"jerry-core/ecma/base/ecma-alloc.c",
"jerry-core/ecma/base/ecma-gc.c",
"jerry-core/ecma/base/ecma-helpers-collection.c",
"jerry-core/ecma/base/ecma-helpers-conversion.c",
"jerry-core/ecma/base/ecma-helpers-errol.c",
"jerry-core/ecma/base/ecma-helpers-external-pointers.c",
"jerry-core/ecma/base/ecma-helpers-number.c",
"jerry-core/ecma/base/ecma-helpers-string.c",
"jerry-core/ecma/base/ecma-helpers-value.c",
"jerry-core/ecma/base/ecma-helpers.c",
"jerry-core/ecma/base/ecma-init-finalize.c",
"jerry-core/ecma/base/ecma-lcache.c",
"jerry-core/ecma/base/ecma-literal-storage.c",
"jerry-core/ecma/base/ecma-module.c",
"jerry-core/ecma/base/ecma-property-hashmap.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-array-iterator-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-array.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-boolean-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-boolean.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-dataview-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-dataview.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-date.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-error-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-error.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-evalerror-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-function.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-global.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-helpers-date.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-helpers-error.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-helpers-json.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-helpers-sort.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-iterator-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-json.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-map-iterator-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-map-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-map.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-math.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-number-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-number.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-object.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-promise.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-regexp.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-set-iterator-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-set-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-set.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-string-iterator-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-string.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-symbol.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-type-error-thrower.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-typeerror-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-urierror-prototype.c",
"jerry-core/ecma/builtin-objects/ecma-builtin-urierror.c",
"jerry-core/ecma/builtin-objects/ecma-builtins.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float32array-prototype.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float32array.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float64array-prototype.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float64array.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int16array-prototype.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int16array.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int32array-prototype.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int32array.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int8array-prototype.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int8array.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray-helpers.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray-prototype.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint16array-prototype.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint16array.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint32array-prototype.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint32array.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8array-prototype.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8array.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8clampedarray-prototype.c",
"jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8clampedarray.c",
"jerry-core/ecma/operations/ecma-array-object.c",
"jerry-core/ecma/operations/ecma-arraybuffer-object.c",
"jerry-core/ecma/operations/ecma-boolean-object.c",
"jerry-core/ecma/operations/ecma-comparison.c",
"jerry-core/ecma/operations/ecma-container-object.c",
"jerry-core/ecma/operations/ecma-conversion.c",
"jerry-core/ecma/operations/ecma-dataview-object.c",
"jerry-core/ecma/operations/ecma-eval.c",
"jerry-core/ecma/operations/ecma-exceptions.c",
"jerry-core/ecma/operations/ecma-function-object.c",
"jerry-core/ecma/operations/ecma-get-put-value.c",
"jerry-core/ecma/operations/ecma-iterator-object.c",
"jerry-core/ecma/operations/ecma-jobqueue.c",
"jerry-core/ecma/operations/ecma-lex-env.c",
"jerry-core/ecma/operations/ecma-number-arithmetic.c",
"jerry-core/ecma/operations/ecma-number-object.c",
"jerry-core/ecma/operations/ecma-objects-arguments.c",
"jerry-core/ecma/operations/ecma-objects-general.c",
"jerry-core/ecma/operations/ecma-objects.c",
"jerry-core/ecma/operations/ecma-promise-object.c",
"jerry-core/ecma/operations/ecma-reference.c",
"jerry-core/ecma/operations/ecma-regexp-object.c",
"jerry-core/ecma/operations/ecma-string-object.c",
"jerry-core/ecma/operations/ecma-symbol-object.c",
"jerry-core/ecma/operations/ecma-typedarray-object.c",
"jerry-core/ext/ext-utils.c",
"jerry-core/ext/heapdump.c",
"jerry-core/ext/tracker.c",
"jerry-core/jcontext/jcontext.c",
"jerry-core/jmem/jmem-allocator.c",
"jerry-core/jmem/jmem-heap.c",
"jerry-core/jmem/jmem-poolman.c",
"jerry-core/jrt/jrt-fatals.c",
"jerry-core/lit/lit-char-helpers.c",
"jerry-core/lit/lit-magic-strings.c",
"jerry-core/lit/lit-strings.c",
"jerry-core/parser/js/byte-code.c",
"jerry-core/parser/js/common.c",
"jerry-core/parser/js/js-lexer.c",
"jerry-core/parser/js/js-parser-expr.c",
"jerry-core/parser/js/js-parser-mem.c",
"jerry-core/parser/js/js-parser-module.c",
"jerry-core/parser/js/js-parser-statm.c",
"jerry-core/parser/js/js-parser-util.c",
"jerry-core/parser/js/js-parser.c",
"jerry-core/parser/js/js-scanner-util.c",
"jerry-core/parser/js/js-scanner.c",
"jerry-core/parser/regexp/re-bytecode.c",
"jerry-core/parser/regexp/re-compiler.c",
"jerry-core/parser/regexp/re-parser.c",
"jerry-core/vm/opcodes-ecma-arithmetics.c",
"jerry-core/vm/opcodes-ecma-bitwise.c",
"jerry-core/vm/opcodes-ecma-relational-equality.c",
"jerry-core/vm/opcodes.c",
"jerry-core/vm/vm-stack.c",
"jerry-core/vm/vm-utils.c",
"jerry-core/vm/vm.c",
]
jerry_core_include_dirs = [
"jerry-core/include",
"jerry-core/api",
"jerry-core/debugger",
"jerry-core/ecma/base",
"jerry-core/ecma/builtin-objects",
"jerry-core/ecma/builtin-objects/typedarray",
"jerry-core/ecma/operations",
"jerry-core/ext",
"jerry-core/jcontext",
"jerry-core/jmem",
"jerry-core/jrt",
"jerry-core/lit",
"jerry-core/parser",
"jerry-core/parser/js",
"jerry-core/parser/regexp",
"jerry-core/vm",
"jerry-core",
]
jerry_ext_sources = [
"jerry-ext/arg/arg-js-iterator-helper.c",
"jerry-ext/arg/arg-transform-functions.c",
"jerry-ext/arg/arg.c",
"jerry-ext/debugger/debugger-common.c",
"jerry-ext/debugger/debugger-rp.c",
"jerry-ext/debugger/debugger-serial.c",
"jerry-ext/debugger/debugger-sha1.c",
"jerry-ext/debugger/debugger-tcp.c",
"jerry-ext/debugger/debugger-ws.c",
"jerry-ext/handle-scope/handle-scope-allocator.c",
"jerry-ext/handle-scope/handle-scope.c",
"jerry-ext/handler/handler-assert.c",
"jerry-ext/handler/handler-gc.c",
"jerry-ext/handler/handler-print.c",
"jerry-ext/handler/handler-register.c",
"jerry-ext/module/module.c",
]
jerry_ext_include_dirs = [
"jerry-ext/include",
"jerry-ext/debugger",
"jerry-ext/common",
"jerry-ext/arg",
"jerry-ext/handle-scope",
"jerry-core/include",
]
jerry_port_default_sources = [
"jerry-port/default/default-date.c",
"jerry-port/default/default-debugger.c",
"jerry-port/default/default-external-context.c",
"jerry-port/default/default-fatal.c",
"jerry-port/default/default-io.c",
"jerry-port/default/default-module.c",
]
jerry_port_default_include_dirs = [
"jerry-port/default/include",
"jerry-core/include",
]
jerry_libm_sources = [
"jerry-libm/acos.c",
"jerry-libm/asin.c",
"jerry-libm/atan.c",
"jerry-libm/atan2.c",
"jerry-libm/ceil.c",
"jerry-libm/copysign.c",
"jerry-libm/exp.c",
"jerry-libm/fabs.c",
"jerry-libm/finite.c",
"jerry-libm/floor.c",
"jerry-libm/fmod.c",
"jerry-libm/isnan.c",
"jerry-libm/log.c",
"jerry-libm/nextafter.c",
"jerry-libm/pow.c",
"jerry-libm/scalbn.c",
"jerry-libm/sqrt.c",
"jerry-libm/trig.c",
]
jerry_libm_include_dirs = [ "jerry-libm/include" ]
jerry_sources = [
"jerry-main/cli.c",
"jerry-main/main-unix.c",
]
jerry_include_dirs = [
"jerry-ext",
"jerry-ext/common",
"jerry-ext/debugger",
"jerry-ext/handle-scope",
"jerry-ext/include/jerryscript-ext",
"jerry-ext/include",
"jerry-libm",
"jerry-debugger",
"jerry-port",
"jerry-main",
"jerry-core",
"jerry-port/default/include",
"jerry-core/ecma/base",
"jerry-core/ecma/operations",
"jerry-core/ecma/builtin-objects",
"jerry-core/vm",
"jerry-core/jcontext",
"jerry-core/jmem",
"jerry-core/parser/js",
"jerry-core/parser/regexp",
"jerry-core/jrt",
"jerry-core/lit",
"jerry-core/include",
"jerry-core/ecma/builtin-objects/",
"//kernel/liteos_a/lib/libsec/include",
]
jerry_snapshot_sources = [
"jerry-main/cli.c",
"jerry-main/main-unix-snapshot.c",
]
jerry_snapshot_include_dirs = [
"jerry-ext",
"jerry-ext/common",
"jerry-ext/debugger",
"jerry-ext/handle-scope",
"jerry-ext/include/jerryscript-ext",
"jerry-ext/include",
"jerry-libm",
"jerry-debugger",
"jerry-port",
"jerry-main",
"jerry-core",
"jerry-port/default/include",
"jerry-core/ecma/base",
"jerry-core/ecma/operations",
"jerry-core/ecma/builtin-objects",
"jerry-core/vm",
"jerry-core/jcontext",
"jerry-core/jmem",
"jerry-core/parser/js",
"jerry-core/parser/regexp",
"jerry-core/jrt",
"jerry-core/lit",
"jerry-core/include",
"jerry-core/ecma/builtin-objects/",
"//kernel/liteos_a/lib/libsec/include",
]
ohos_executable("jerry") {
configs = [ ":jerryscript_config" ]
sources = jerry_core_sources
sources += jerry_ext_sources
sources += jerry_libm_sources
sources += jerry_port_default_sources
sources += jerry_sources
include_dirs = jerry_core_include_dirs
include_dirs += jerry_ext_include_dirs
include_dirs += jerry_libm_include_dirs
include_dirs += jerry_port_default_include_dirs
include_dirs += jerry_include_dirs
}
ohos_executable("jerry-snapshot") {
configs = [ ":jerryscript_config" ]
sources = jerry_core_sources
sources += jerry_libm_sources
sources += jerry_port_default_sources
sources += jerry_snapshot_sources
include_dirs = jerry_core_include_dirs
include_dirs += jerry_libm_include_dirs
include_dirs += jerry_port_default_include_dirs
include_dirs += jerry_snapshot_include_dirs
}
ohos_static_library("libjerryscript") {
configs = [ ":jerryscript_simulator" ]
sources = jerry_core_sources
sources += jerry_ext_sources
sources += jerry_libm_sources
sources += jerry_port_default_sources
include_dirs = jerry_core_include_dirs
include_dirs += jerry_ext_include_dirs
include_dirs += jerry_libm_include_dirs
include_dirs += jerry_port_default_include_dirs
}
}
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
[
{
"Name": "jerryscript",
"License": "Apache-2.0",
"License File": "LICENSE",
"Version Number": "v2.1.0",
"Owner": "pengbiao1@huawei.com",
"Upstream URL": "https://github.com/jerryscript-project/jerryscript.git",
"Description": "JerryScript is the lightweight JavaScript engine intended to run on a very constrained devices such as microcontrollers."
}
]
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
......@@ -145,6 +145,9 @@ lite_library("jerry-core_shared") {
"ecma/operations/ecma-string-object.c",
"ecma/operations/ecma-symbol-object.c",
"ecma/operations/ecma-typedarray-object.c",
"ext/ext-utils.c",
"ext/heapdump.c",
"ext/tracker.c",
"jcontext/jcontext.c",
"jmem/jmem-allocator.c",
"jmem/jmem-heap.c",
......@@ -183,6 +186,7 @@ lite_library("jerry-core_shared") {
"ecma/builtin-objects",
"ecma/builtin-objects/typedarray",
"ecma/operations",
"ext",
"jcontext",
"jmem",
"jrt",
......@@ -201,6 +205,9 @@ lite_library("jerry-core_shared") {
"JERRY_GLOBAL_HEAP_SIZE = (128)",
"JERRY_ERROR_MESSAGES = 1",
"JERRY_LINE_INFO = 1",
"JERRY_FUNCTION_NAME",
"JERRY_FUNCTION_BACKTRACE",
"JERRY_STACK_LIMIT = 0",
]
}
}
......@@ -25,7 +25,7 @@ set(JERRY_DEBUGGER OFF CACHE BOOL "Enable JerryScript deb
set(JERRY_ERROR_MESSAGES OFF CACHE BOOL "Enable error messages?")
set(JERRY_EXTERNAL_CONTEXT OFF CACHE BOOL "Enable external context?")
set(JERRY_PARSER ON CACHE BOOL "Enable javascript-parser?")
set(JERRY_LINE_INFO OFF CACHE BOOL "Enable line info?")
set(JERRY_LINE_INFO ON CACHE BOOL "Enable line info?")
set(JERRY_LOGGING OFF CACHE BOOL "Enable logging?")
set(JERRY_MEM_STATS OFF CACHE BOOL "Enable memory statistics?")
set(JERRY_MEM_GC_BEFORE_EACH_ALLOC OFF CACHE BOOL "Enable mem-stress test?")
......@@ -115,6 +115,7 @@ set(INCLUDE_CORE_PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/builtin-objects"
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/builtin-objects/typedarray"
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/operations"
"${CMAKE_CURRENT_SOURCE_DIR}/ext"
"${CMAKE_CURRENT_SOURCE_DIR}/jcontext"
"${CMAKE_CURRENT_SOURCE_DIR}/jmem"
"${CMAKE_CURRENT_SOURCE_DIR}/jrt"
......@@ -135,6 +136,7 @@ file(GLOB SOURCE_CORE_FILES
ecma/builtin-objects/*.c
ecma/builtin-objects/typedarray/*.c
ecma/operations/*.c
ext/*.c
jcontext/*.c
jmem/*.c
jrt/*.c
......@@ -143,6 +145,10 @@ file(GLOB SOURCE_CORE_FILES
parser/regexp/*.c
vm/*.c)
list(FILTER SOURCE_CORE_FILES EXCLUDE REGEX "api/generate-bytecode.c")
list(FILTER SOURCE_CORE_FILES EXCLUDE REGEX "api/external-context-helpers.c")
list(FILTER SOURCE_CORE_FILES EXCLUDE REGEX "api/jerryscript_adapter.c")
# All-in-one build
if(ENABLE_ALL_IN_ONE)
set(ALL_IN_FILE "${CMAKE_BINARY_DIR}/jerry-all-in.c")
......@@ -200,6 +206,10 @@ set(INCLUDE_THIRD_PARTY_VALGRIND "${CMAKE_SOURCE_DIR}/third-party/valgrind")
# build mode specific compile/link flags
set(DEFINES_JERRY ${DEFINES_JERRY} $<$<NOT:$<CONFIG:Debug>>:JERRY_NDEBUG>)
set(DEFINES_JERRY ${DEFINES_JERRY} JERRY_FUNCTION_NAME)
set(DEFINES_JERRY ${DEFINES_JERRY} JERRY_FUNCTION_BACKTRACE)
set(DEFINES_JERRY ${DEFINES_JERRY} JERRY_HEAPDUMP)
set(DEFINES_JERRY ${DEFINES_JERRY} JERRY_REF_TRACKER)
# Jerry heap-section
if(DEFINED JERRY_ATTR_GLOBAL_HEAP)
......@@ -234,7 +244,7 @@ jerry_add_define01(JERRY_EXTERNAL_CONTEXT)
jerry_add_define01(JERRY_PARSER)
# JS line info
#jerry_add_define01(JERRY_LINE_INFO)
jerry_add_define01(JERRY_LINE_INFO)
# Logging
#jerry_add_define01(JERRY_LOGGING)
......
/*
* Copyright (c) Huawei Technologies Co., Ltd. 2020-2020. All rights reserved.
* Description: New context and heap for JS && BMS task in JUPITER.
* Create: 2020/11/17
*/
#ifdef JERRY_IAR_JUPITER
#include "jcontext.h"
#include "config-jupiter.h"
#pragma data_alignment = JMEM_ALIGNMENT
extern uint8_t* js_context_and_heap;
// heap for bms task
extern uint8_t* bms_context_and_heap;
/**
* The alloc function passed to jerry_create_context for bms
*/
static void * bms_task_context_alloc (size_t total_size, void *cb_data_p)
{
(void) cb_data_p; /* unused */
if (total_size > (BMS_TASK_CONTEXT_AND_HEAP_SIZE * CONVERTION_RATIO)) {
/* out of setted space */
return NULL;
}
return bms_context_and_heap;
} /* bms_task_context_alloc */
/**
* Create and set the default external context for bms task
*/
void bms_task_context_init (void)
{
jerry_context_t * bms_task_context = jerry_create_context (GT_TASK_HEAP_SIZE * CONVERTION_RATIO,
bms_task_context_alloc, NULL);
jerry_port_default_set_current_context (bms_task_context);
} /* bms_task_context_init */
/**
* The alloc function passed to jerry_create_context for js
*/
static void * js_task_context_alloc (size_t total_size, void *cb_data_p)
{
(void) cb_data_p; /* unused */
if (total_size > (JS_TASK_CONTEXT_AND_HEAP_SIZE_BYTE)) {
/* out of setted space */
return NULL;
}
return js_context_and_heap;
} /* js_task_context_alloc */
/**
* Create and set the default external context for js task., need free after task
*/
void js_task_context_init (void)
{
jerry_context_t * js_task_context = jerry_create_context (GT_TASK_HEAP_SIZE * CONVERTION_RATIO,
js_task_context_alloc, NULL);
jerry_port_default_set_current_context (js_task_context);
} /* js_task_context_init */
/**
* Unified interface for Creating external context
*/
void
jerry_external_context_init (uint32_t heap_size, /**< the size of heap */
jerry_context_alloc_t alloc, /**< the alloc function */
void *cb_data_p) /**< the cb_data for alloc function */
{
jerry_context_t * external_context = jerry_create_context (heap_size, alloc, NULL);
jerry_port_default_set_current_context (external_context);
}
#endif // JERRY_IAR_JUPITER
/*
* Copyright (c) Huawei Technologies Co., Ltd. 2020-2020. All rights reserved.
* Description: Definition of source file for generating bytecode.
* Create: 2020/09/07
*/
#ifdef JERRY_FOR_IAR_CONFIG
#include "generate-bytecode.h"
#include <string.h>
#include "config-gt.h"
#include "config-jupiter.h"
#define VERSION_LEN 30
#define ONETIME_MAX_OPTBYTES 4096 // max size for reading and writing at onetime
// jerry version code
char version_str[VERSION_LEN];
// secure functions
extern int memset_s(void *dest, size_t destMax, int c, size_t count);
extern int strcpy_s(char *strDest, size_t destMax, const char *strSrc);
extern int strcat_s(char *strDest, size_t destMax, const char *strSrc);
extern int strncat_s(char *strDest, size_t destMax, const char *strSrc, size_t count);
extern int sprintf_s(char *strDest, size_t destMax, const char *format, ...);
extern int strncpy_s(char *strDest, size_t destMax, const char *strSrc, size_t count);
#ifdef JERRY_IAR_JUPITER
extern uint8_t* input_buffer;
extern uint8_t* snapshot_buffer;
#endif // JERRY_IAR_JUPITER
/**
* jerry snapshot format version
*/
char* get_jerry_version_no() {
if (sprintf_s(version_str, sizeof(version_str),
"JERRY_SNAPSHOT_VERSION_%u", JERRY_SNAPSHOT_VERSION) < 0) {
return NULL;
}
return version_str;
} /* get_jerry_version_no */
/**
* splice path and filename
*/
char* splice_path(char* str1, char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
int res_len = len1 + len2 + 1; // str1 + "/" + str2
char* res = (char*)OhosMalloc(MEM_TYPE_JERRY, (res_len + 1) * sizeof(char));
if (res == NULL) {
return NULL;
}
if (memset_s(res, res_len + 1, 0, res_len + 1) != 0) {
OhosFree(res);
res = NULL;
return NULL;
}
if (strcpy_s(res, len1 + 1, str1) != 0) {
OhosFree(res);
res = NULL;
return NULL;
}
if ((strcat_s(res, len1 + strlen("/") + 1, "/") != 0)
|| (strcat_s(res, res_len + 1, str2) != 0)) {
OhosFree(res);
res = NULL;
return NULL;
}
return res;
} /* splice_path */
/**
* judge if is template(js/bc) file
*/
bool is_template_file(char* filename, char* template) {
const char* pFile;
pFile = strrchr(filename, '.');
if ((pFile != NULL) && (strcmp(pFile, template) == 0)) {
return true;
}
return false;
} /* is_template_file */
/**
* get output snapshot file absolutely path
*/
char* get_output_file_path(char* input_file_path) {
int len = strlen(input_file_path);
char* output_file_path = (char*)OhosMalloc(MEM_TYPE_JERRY, (len + 1) * sizeof(char));
if (output_file_path == NULL) {
return NULL;
}
if (memset_s(output_file_path, len + 1, 0, len + 1) != 0) {
OhosFree(output_file_path);
output_file_path = NULL;
return NULL;
}
if (strncpy_s(output_file_path, len, input_file_path, len - strlen(".js")) != 0) {
OhosFree(output_file_path);
output_file_path = NULL;
return NULL;
}
output_file_path[len-3] = '.';
output_file_path[len-2] = 'b';
output_file_path[len-1] = 'c';
output_file_path[len] = '\0';
return output_file_path;
} /* get_output_file_path */
/**
* read js bundle file by Fragement
*/
EXECRES read_js_file(char* filename, uint8_t* target_Js, int* file_bytesize) {
int fd = 0;
struct stat file_stat = { 0 };
int remain_to_read = 0;
int here_to_read = 0;
int tmp_read = 0;
int read_offset = 0;
fd = open(filename, O_RDONLY, S_IREAD);
if (fd < 0) {
// Error: failed to open file
return EXCE_ACE_JERRY_OPEN_FILE_FAILED;
}
if (fstat(fd, &file_stat) < 0) {
close(fd);
return EXCE_ACE_JERRY_GET_FILE_STAT_ERROR;
}
*file_bytesize = file_stat.st_size;
if (*file_bytesize > INPUTJS_BUFFER_SIZE) {
close(fd);
return EXCE_ACE_JERRY_JSFILE_TOO_LARGE;
}
remain_to_read = *file_bytesize;
while (remain_to_read > 0) {
here_to_read = (remain_to_read > ONETIME_MAX_OPTBYTES) ?
ONETIME_MAX_OPTBYTES : remain_to_read;
tmp_read = read(fd, target_Js + read_offset, here_to_read);
if (tmp_read < 0 || tmp_read != here_to_read) {
close(fd);
// Error: failed to read file
return EXCE_ACE_JERRY_READ_JSFILE_FAILED;
}
read_offset = read_offset + here_to_read;
remain_to_read = remain_to_read - here_to_read;
}
if (read_offset != *file_bytesize) {
close(fd);
// Error: failed to successfully read file
return EXCE_ACE_JERRY_READ_JSFILE_FAILED;
}
close(fd);
return EXCE_ACE_JERRY_EXEC_OK;
} /* read_js_file */
/**
* write snapshot file by Fragment
*/
EXECRES write_snapshot(char* output_file_name_path, size_t snapshot_size) {
int fd = 0;
int res = 0;
int remain_to_write = 0;
int here_to_write = 0;
int write_offset = 0;
fd = open(output_file_name_path, O_RDWR | O_CREAT, S_IREAD | S_IWRITE);
if (fd < 0) {
// Error: Unable to open snapshot file
return EXCE_ACE_JERRY_OPEN_FILE_FAILED;
}
remain_to_write = snapshot_size;
while (remain_to_write > 0) {
here_to_write = (remain_to_write > ONETIME_MAX_OPTBYTES) ?
ONETIME_MAX_OPTBYTES : remain_to_write;
res = write(fd, snapshot_buffer + write_offset, here_to_write);
if (res <= 0 || res != here_to_write) {
close(fd);
// Error: Unable to write snapshot file
return EXCE_ACE_JERRY_WRITE_SNAPSHOT_FILE_FAILED;
}
write_offset = write_offset + here_to_write;
remain_to_write = remain_to_write - here_to_write;
}
if (write_offset != snapshot_size) {
close(fd);
// Error: Unable to successfully write snapshot file
return EXCE_ACE_JERRY_WRITE_SNAPSHOT_FILE_FAILED;
}
close(fd);
return EXCE_ACE_JERRY_EXEC_OK;
} /* write_snapshot */
/**
* struct for Directory Node
*/
typedef struct Node {
char* dir_name;
struct Node* next;
} dir_node;
/**
* free the memory for linkedlist
*/
void free_link(dir_node* head) {
dir_node* tmp = NULL;
while (head != NULL) {
tmp = head;
head = head->next;
if (tmp->dir_name != NULL) {
OhosFree(tmp->dir_name);
tmp->dir_name = NULL;
}
OhosFree(tmp);
tmp = NULL;
}
} /* free_link */
/**
* generate snapshot file
*/
EXECRES generate_snapshot_file(char* input_file, char* output_file) {
uint8_t* target_Js = input_buffer;
jerry_value_t generate_result;
size_t snapshot_size = 0;
EXECRES write_res = EXCE_ACE_JERRY_EXEC_OK;
bool convert_state = false;
int file_bytesize = 0;
EXECRES read_res = EXCE_ACE_JERRY_EXEC_OK;
if (input_file == NULL || output_file == NULL) {
return EXCE_ACE_JERRY_NULL_PATH;
}
read_res = read_js_file(input_file, target_Js, &file_bytesize);
if (read_res != EXCE_ACE_JERRY_EXEC_OK) {
return read_res;
}
generate_result = jerry_generate_snapshot (
NULL,
0,
target_Js,
file_bytesize,
0,
(uint32_t* )snapshot_buffer,
SNAPSHOT_BUFFER_SIZE);
convert_state = jerry_value_is_error(generate_result)
|| !jerry_value_is_number(generate_result);
if (convert_state) {
// Error: Generating snapshot failed
jerry_release_value(generate_result);
return EXCE_ACE_JERRY_GENERATE_SNAPSHOT_FAILED;
}
snapshot_size = (size_t)jerry_get_number_value(generate_result);
jerry_release_value(generate_result);
write_res = write_snapshot(output_file, snapshot_size);
if (write_res != EXCE_ACE_JERRY_EXEC_OK) {
// Error: Writing snapshot file failed
return write_res;
}
return EXCE_ACE_JERRY_EXEC_OK;
}/* generate_snapshot_file */
/**
* traverse directory and do js to bytecode conversion ON IAR
*/
EXECRES walk_directory(char* filefolder) {
EXECRES generate_val = EXCE_ACE_JERRY_EXEC_OK;
DIR* dir;
struct dirent* direntp;
struct stat file_stat = { 0 };
char* filename = NULL;
char* current_path = NULL;
char* input_file_path = NULL;
char* output_file_path = NULL;
char* start_folder = NULL;
dir_node *head, *curr, *end, *new_node;
int filefolder_len = strlen(filefolder) + 1;
if ((filefolder == NULL) || (stat(filefolder, &file_stat) < 0)) {
return EXCE_ACE_JERRY_INPUT_PATH_ERROR;
}
if ((start_folder = (char*)OhosMalloc(MEM_TYPE_JERRY, filefolder_len)) == NULL) {
return EXEC_ACE_JERRY_MALLOC_ERROR;
}
if (strcpy_s(start_folder, filefolder_len, filefolder) != 0) {
OhosFree(start_folder);
start_folder = NULL;
return EXCE_ACE_JERRY_INPUT_PATH_ERROR;
}
if ((head = (dir_node*)OhosMalloc(MEM_TYPE_JERRY, sizeof(dir_node))) == NULL) {
OhosFree(start_folder);
start_folder = NULL;
return EXCE_ACE_JERRY_LINKLIST_ERROR;
}
if ((end = (dir_node*)OhosMalloc(MEM_TYPE_JERRY, sizeof(dir_node))) == NULL) {
OhosFree(start_folder);
start_folder = NULL;
OhosFree(head);
head = NULL;
return EXCE_ACE_JERRY_LINKLIST_ERROR;
}
head->dir_name = NULL;
head->next = end;
end->dir_name = start_folder;
end->next = NULL;
jerry_init_flag_t flags = JERRY_INIT_EMPTY;
jerry_init (flags);
while (head->next != NULL) {
curr = head->next;
current_path = curr->dir_name;
if ((dir = (DIR*)opendir(current_path)) == NULL) {
free_link(head);
curr = NULL;
end = NULL;
jerry_cleanup();
return EXCE_ACE_JERRY_OPEN_DIR_FAILED;
}
while ((direntp = (struct dirent*)readdir(dir)) != NULL) {
filename = direntp->d_name;
if (strncmp(filename, ".", 1) == 0) {
continue;
}
if ((input_file_path = splice_path(current_path, filename)) == NULL) {
closedir(dir);
free_link(head);
curr = NULL;
end = NULL;
jerry_cleanup();
return EXCE_ACE_JERRY_SPLICE_PATH_ERROR;
}
if (stat(input_file_path, &file_stat) < 0) {
closedir(dir);
OhosFree(input_file_path);
input_file_path = NULL;
free_link(head);
curr = NULL;
end = NULL;
jerry_cleanup();
return EXCE_ACE_JERRY_GET_FILE_STAT_ERROR;
}
if (file_stat.st_mode & S_IFDIR) {
// file now is file folder
if ((new_node = (dir_node*)OhosMalloc(MEM_TYPE_JERRY, sizeof(dir_node))) == NULL) {
closedir(dir);
OhosFree(input_file_path);
input_file_path = NULL;
free_link(head);
curr = NULL;
end = NULL;
jerry_cleanup();
return EXCE_ACE_JERRY_LINKLIST_ERROR;
}
// input_file_path for dir will be freed when that node is freed
new_node->dir_name = input_file_path;
new_node->next = NULL;
end->next = new_node;
end = new_node;
new_node = NULL;
} else if (is_template_file(filename, ".js")) {
//filename now is .js file
if ((output_file_path = get_output_file_path(input_file_path)) == NULL) {
closedir(dir);
OhosFree(input_file_path);
input_file_path = NULL;
free_link(head);
curr = NULL;
end = NULL;
jerry_cleanup();
return EXCE_ACE_JERRY_SPLICE_OUTPUT_PATH_ERROR;
}
generate_val = generate_snapshot_file(input_file_path, output_file_path);
OhosFree(output_file_path);
output_file_path = NULL;
OhosFree(input_file_path);
input_file_path = NULL;
if (generate_val != EXCE_ACE_JERRY_EXEC_OK) {
closedir(dir);
free_link(head);
curr = NULL;
end = NULL;
jerry_cleanup();
return generate_val; // return error_code
}
} else {
OhosFree(input_file_path);
input_file_path = NULL;
}
}
closedir(dir);
head->next = curr->next;
OhosFree(curr->dir_name);
curr->dir_name = NULL;
OhosFree(curr);
curr = NULL;
}
OhosFree(head);
head = NULL;
end = NULL;
jerry_cleanup();
return EXCE_ACE_JERRY_EXEC_OK;
} /* walk_directory */
/**
* when convertion failed, traverse directory and delete all created bytecode files
*/
EXECRES walk_del_bytecode(char* filefolder) {
DIR* dir;
struct dirent* direntp;
struct stat file_stat = { 0 };
char* filename = NULL;
char* current_path = NULL;
char* input_file_path = NULL;
char* start_folder = NULL;
dir_node *head, *curr, *end, *new_node;
int filefolder_len = strlen(filefolder) + 1;
if ((filefolder == NULL) || (stat(filefolder, &file_stat) < 0)) {
return EXCE_ACE_JERRY_INPUT_PATH_ERROR;
}
if ((start_folder = (char*)OhosMalloc(MEM_TYPE_JERRY, filefolder_len)) == NULL) {
return EXEC_ACE_JERRY_MALLOC_ERROR;
}
if (strcpy_s(start_folder, filefolder_len, filefolder) != 0) {
OhosFree(start_folder);
start_folder = NULL;
return EXCE_ACE_JERRY_INPUT_PATH_ERROR;
}
if ((head = (dir_node*)OhosMalloc(MEM_TYPE_JERRY, sizeof(dir_node))) == NULL) {
OhosFree(start_folder);
start_folder = NULL;
return EXCE_ACE_JERRY_LINKLIST_ERROR;
}
if ((end = (dir_node*)OhosMalloc(MEM_TYPE_JERRY, sizeof(dir_node))) == NULL) {
OhosFree(start_folder);
start_folder = NULL;
OhosFree(head);
head = NULL;
return EXCE_ACE_JERRY_LINKLIST_ERROR;
}
head->dir_name = NULL;
head->next = end;
end->dir_name = start_folder;
end->next = NULL;
while (head->next != NULL) {
curr = head->next;
current_path = curr->dir_name;
if ((dir = (DIR*)opendir(current_path)) == NULL) {
free_link(head);
curr = NULL;
end = NULL;
return EXCE_ACE_JERRY_OPEN_DIR_FAILED;
}
while ((direntp = (struct dirent*)readdir(dir)) != NULL) {
filename = direntp->d_name;
if (strncmp(filename, ".", 1) == 0) {
continue;
}
if ((input_file_path = splice_path(current_path, filename)) == NULL) {
closedir(dir);
free_link(head);
curr = NULL;
end = NULL;
return EXCE_ACE_JERRY_SPLICE_PATH_ERROR;
}
if (stat(input_file_path, &file_stat) < 0) {
closedir(dir);
OhosFree(input_file_path);
input_file_path = NULL;
free_link(head);
curr = NULL;
end = NULL;
return EXCE_ACE_JERRY_GET_FILE_STAT_ERROR;
}
if (file_stat.st_mode & S_IFDIR) {
// file now is file folder
if ((new_node = (dir_node*)OhosMalloc(MEM_TYPE_JERRY, sizeof(dir_node))) == NULL) {
closedir(dir);
OhosFree(input_file_path);
input_file_path = NULL;
free_link(head);
curr = NULL;
end = NULL;
return EXCE_ACE_JERRY_LINKLIST_ERROR;
}
// input_file_path for dir will be freed when that node is freed
new_node->dir_name = input_file_path;
new_node->next = NULL;
end->next = new_node;
end = new_node;
new_node = NULL;
} else if ((is_template_file(filename, ".bc")) && (unlink(input_file_path) != F_OK)) {
//file now is .bc file and unlink file failed
closedir(dir);
OhosFree(input_file_path);
input_file_path = NULL;
free_link(head);
curr = NULL;
end = NULL;
return EXEC_ACE_JERRY_UNLINKFILE_ERROR;
} else {
OhosFree(input_file_path);
input_file_path = NULL;
}
}
closedir(dir);
head->next = curr->next;
OhosFree(curr->dir_name);
curr->dir_name = NULL;
OhosFree(curr);
curr = NULL;
}
OhosFree(head);
head = NULL;
end = NULL;
return EXCE_ACE_JERRY_EXEC_OK;
} /* walk_del_bytecode */
#endif // end JERRY_FOR_IAR_CONFIG
/*
* Copyright (c) Huawei Technologies Co., Ltd. 2020-2020. All rights reserved.
* Description: Definition of header file for generating bytecode.
* Create: 2020/09/07
*/
#ifndef GENERATE_BYTECODE_H
#define GENERATE_BYTECODE_H
#ifdef JERRY_FOR_IAR_CONFIG
#include "jerryscript.h"
typedef enum {
EXCE_ACE_JERRY_EXEC_OK = 0, // program function OK
EXCE_ACE_JERRY_NULL_PATH, // null path for generateing snapshot
EXEC_ACE_JERRY_MALLOC_ERROR, // error when malloc
EXCE_ACE_JERRY_INPUT_PATH_ERROR, // passed input path is NULL OR open failed
EXCE_ACE_JERRY_INPUT_PATH_NOT_DIR, // passed input path is not a directory
EXCE_ACE_JERRY_OPEN_DIR_FAILED, // open directory failed
EXCE_ACE_JERRY_GENERATE_SNAPSHOT_FAILED, // jerry_generate_snapshot failed
EXCE_ACE_JERRY_OPEN_FILE_FAILED, // open file failed
EXCE_ACE_JERRY_WRITE_SNAPSHOT_FILE_FAILED, // write into snapshot file failed
EXCE_ACE_JERRY_READ_JSFILE_FAILED, // read .js file process failed
EXCE_ACE_JERRY_JSFILE_TOO_LARGE, // bytes of js file out of psRAM
EXCE_ACE_JERRY_SPLICE_PATH_ERROR, // error when splice path
EXCE_ACE_JERRY_SPLICE_OUTPUT_PATH_ERROR, // error when splice output file abs name
EXCE_ACE_JERRY_SPRINTFS_VERSION_ERROR, // error when sprintf_s for jerry_version
EXCE_ACE_JERRY_GET_FILE_STAT_ERROR, // error when getting file stat
EXCE_ACE_JERRY_LINKLIST_ERROR, // error when malloc for list node
EXEC_ACE_JERRY_UNLINKFILE_ERROR, // error when unlink bytecode file
} EXECRES;
typedef struct
{
uint32_t task_id;
jerry_context_t *context_p;
} ContextRecord;
char* get_jerry_version_no();
EXECRES walk_directory(char* filefolder);
EXECRES walk_del_bytecode(char* filefolder);
void bms_task_context_init (void);
void js_task_context_init (void);
void jerry_port_default_remove_current_context_record ();
void jerry_external_context_init(uint32_t heap_size, jerry_context_alloc_t alloc, void *cb_data_p);
#endif // JERRY_FOR_IAR_CONFIG
#endif // GENERATE_BYTECODE_H
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
......@@ -46,7 +46,17 @@
#include "re-compiler.h"
#ifdef JERRY_FOR_IAR_CONFIG
#include "mc_memory.h"
#include "config-gt.h"
#endif
#if defined(JERRY_REF_TRACKER)
#include "tracker.h"
#endif
#if defined(JERRY_HEAPDUMP)
#include "heapdump.h"
#endif
JERRY_STATIC_ASSERT (sizeof (jerry_value_t) == sizeof (ecma_value_t),
......@@ -170,7 +180,7 @@ jerry_throw (jerry_value_t value) /**< return value */
char* jerry_vla_malloc (uint32_t size)
{
char* ret;
ret = MC_SVR_MEM_ALLOC (size);
ret = OhosMalloc (MEM_TYPE_JERRY, size);
if (!ret)
{
return NULL;
......@@ -180,7 +190,7 @@ char* jerry_vla_malloc (uint32_t size)
void jerry_vla_free (char* p)
{
MC_SVR_MEM_FREE (p);
OhosFree (p);
}
#endif
......@@ -190,6 +200,9 @@ void jerry_vla_free (char* p)
void
jerry_init (jerry_init_flag_t flags) /**< combination of Jerry flags */
{
#if defined(JERRY_REF_TRACKER)
InitTracker();
#endif
/* This function cannot be called twice unless jerry_cleanup is called. */
JERRY_ASSERT (!(JERRY_CONTEXT (status_flags) & ECMA_STATUS_API_AVAILABLE));
......@@ -211,6 +224,8 @@ jerry_init (jerry_init_flag_t flags) /**< combination of Jerry flags */
void
jerry_cleanup (void)
{
ecma_gc_run();
jerry_assert_api_available ();
#if ENABLED (JERRY_DEBUGGER)
......@@ -2483,6 +2498,14 @@ jerry_call_function (const jerry_value_t func_obj_val, /**< function object to c
{
jerry_assert_api_available ();
#if ENABLED (JERRY_DEBUGGER)
if (JERRY_CONTEXT (debugger_flags) & JERRY_DEBUGGER_CONNECTED) {
if (jerry_debugger_receive (NULL)) {
JERRY_DEBUG_MSG ("resume");
}
}
#endif
if (jerry_value_is_function (func_obj_val))
{
return jerry_invoke_function (false, func_obj_val, this_val, args_p, args_count);
......@@ -3794,6 +3817,38 @@ jerry_json_stringify (const jerry_value_t object_to_stringify) /**< a jerry_obje
#endif /* ENABLED (JERRY_BUILTIN_JSON) */
} /* jerry_json_stringify */
#if defined(JERRY_HEAPDUMP)
void JerryHeapdumpRun(const char* filepath)
{
SetHeapdumpTraring(true);
LogHeapdumpInit(filepath);
LogHeapdump("[\n");
DumpInfoObject(ecma_builtin_get_global(), HEAPDUMP_OBJECT_GLOBAL);
DumpInfoObject(ecma_get_global_environment(), HEAPDUMP_OBJECT_GLOBAL);
ecma_gc_run();
LogHeapdump("{}]\n");
SetHeapdumpTraring(false);
LogHeapdumpClose();
}
#endif
#if defined(JERRY_REF_TRACKER)
void JerryRefTrackerStart(const char* filepath)
{
SetRefTrackerEnabled(true);
LogTrackerInit(filepath);
}
#endif
#if defined(JERRY_REF_TRACKER)
void JerryRefTrackerStop(void)
{
SetRefTrackerEnabled(false);
LogTrackerClose();
}
#endif
/**
* @}
*/
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
......@@ -31,6 +31,14 @@
#include "vm-defines.h"
#include "vm-stack.h"
#if defined(JERRY_HEAPDUMP)
#include "heapdump.h"
#endif
#if defined(JERRY_REF_TRACKER)
#include "tracker.h"
#endif
#if ENABLED (JERRY_ES2015_BUILTIN_TYPEDARRAY)
#include "ecma-typedarray-object.h"
#endif /* ENABLED (JERRY_ES2015_BUILTIN_TYPEDARRAY) */
......@@ -71,11 +79,18 @@ ecma_gc_is_object_visited (ecma_object_t *object_p) /**< object */
* Set visited flag of the object.
* Note: This macro can be inlined for performance critical code paths
*/
#if defined(JERRY_REF_TRACKER)
# define ECMA_REPORT_REF_MARK(x) ReportObjRefManip(x, kRefMark)
#else
# define ECMA_REPORT_REF_MARK(x) do { JERRY_UNUSED(x); } while (0)
#endif
#define ECMA_GC_SET_OBJECT_VISITED(object_p) \
do \
{ \
if ((object_p)->type_flags_refs < ECMA_OBJECT_REF_ONE) \
{ \
ECMA_REPORT_REF_MARK(object_p); \
(object_p)->type_flags_refs |= ECMA_OBJECT_REF_ONE; \
} \
} while (0)
......@@ -106,6 +121,9 @@ ecma_init_gc_info (ecma_object_t *object_p) /**< object */
object_p->gc_next_cp = JERRY_CONTEXT (ecma_gc_objects_cp);
ECMA_SET_NON_NULL_POINTER (JERRY_CONTEXT (ecma_gc_objects_cp), object_p);
#if defined(JERRY_REF_TRACKER)
ReportObjRefManip(object_p, kRefInit);
#endif
} /* ecma_init_gc_info */
/**
......@@ -122,8 +140,24 @@ ecma_ref_object (ecma_object_t *object_p) /**< object */
{
jerry_fatal (ERR_REF_COUNT_LIMIT);
}
#if defined(JERRY_REF_TRACKER)
ReportObjRefManip(object_p, kRefRef);
#endif
} /* ecma_ref_object */
/**
* Decrease reference counter as a routine of GC reset marks phase.
*/
inline void JERRY_ATTR_ALWAYS_INLINE
ecma_unmark_deref_object (ecma_object_t *object_p) /**< object */
{
JERRY_ASSERT (object_p->type_flags_refs >= ECMA_OBJECT_REF_ONE);
object_p->type_flags_refs = (uint16_t) (object_p->type_flags_refs - ECMA_OBJECT_REF_ONE);
#if defined(JERRY_REF_TRACKER)
ReportObjRefManip(object_p, kRefUnmark);
#endif
} /* ecma_unmark_deref_object */
/**
* Decrease reference counter of an object
*/
......@@ -132,6 +166,9 @@ ecma_deref_object (ecma_object_t *object_p) /**< object */
{
JERRY_ASSERT (object_p->type_flags_refs >= ECMA_OBJECT_REF_ONE);
object_p->type_flags_refs = (uint16_t) (object_p->type_flags_refs - ECMA_OBJECT_REF_ONE);
#if defined(JERRY_REF_TRACKER)
ReportObjRefManip(object_p, kRefDeref);
#endif
} /* ecma_deref_object */
/**
......@@ -625,6 +662,10 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */
&& !ecma_gc_is_object_visited (object_p)
&& object_p->type_flags_refs < ECMA_OBJECT_REF_ONE);
#if defined(JERRY_REF_TRACKER)
ReportObjDelete(object_p);
#endif
bool obj_is_not_lex_env = !ecma_is_lexical_environment (object_p);
if (obj_is_not_lex_env
......@@ -1031,6 +1072,11 @@ ecma_gc_run (void)
{
obj_iter_p = JMEM_CP_GET_NON_NULL_POINTER (ecma_object_t, obj_iter_cp);
ecma_gc_mark (obj_iter_p);
#if defined(JERRY_HEAPDUMP)
if (GetHeapdumpTracing()) {
DumpInfoObject(obj_iter_p, HEAPDUMP_OBJECT_ROOT);
}
#endif
obj_iter_cp = obj_iter_p->gc_next_cp;
}
......@@ -1061,6 +1107,11 @@ ecma_gc_run (void)
black_end_p = obj_iter_p;
ecma_gc_mark (obj_iter_p);
#if defined(JERRY_HEAPDUMP)
if (GetHeapdumpTracing()) {
DumpInfoObject(obj_iter_p, HEAPDUMP_OBJECT_SIMPLE);
}
#endif
marked_anything_during_current_iteration = true;
}
else
......@@ -1096,7 +1147,7 @@ ecma_gc_run (void)
{
/* The reference counter must be 1. */
obj_iter_p = JMEM_CP_GET_NON_NULL_POINTER (ecma_object_t, obj_iter_cp);
ecma_deref_object (obj_iter_p);
ecma_unmark_deref_object (obj_iter_p);
JERRY_ASSERT (obj_iter_p->type_flags_refs < ECMA_OBJECT_REF_ONE);
obj_iter_cp = obj_iter_p->gc_next_cp;
......
文件模式从 100755 更改为 100644
......@@ -1735,6 +1735,23 @@ typedef struct
#define ECMA_SYMBOL_HASH_SHIFT 2
#if (JERRY_STACK_LIMIT != 0)
/**
* Set the jerry context stack limit for IAR.
*/
#define JERRY_IAR_MEM_STACK_LIMIT (4480) // > 4136b, 3500; < 4.5 * 1024 = 4608
/**
* Check the current jerry context stack usage.
*/
#define CHECK_JERRY_STACK_USAGE(context_p) \
do \
{ \
if (ecma_get_current_stack_usage () > JERRY_IAR_MEM_STACK_LIMIT) \
{ \
parser_raise_error (context_p, PARSER_ERR_JERRY_STACK_LIMIT_REACHED); \
} \
} while (0)
/**
* Check the current stack usage. If the limit is reached a RangeError is raised.
*/
......@@ -1751,6 +1768,7 @@ do \
* If the stack limit is unlimited, this check is an empty macro.
*/
#define ECMA_CHECK_STACK_USAGE()
#define CHECK_JERRY_STACK_USAGE(context_p)
#endif /* (JERRY_STACK_LIMIT != 0) */
/**
......
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册