Create parser-free script and module materializers for decoded cache blobs. Cached functions create SFDs without Rust compile inputs and attach their precompiled executable immediately, while declaration metadata is populated from decoded records. Treat cache blobs as external input from the HTTP disk cache. Run bytecode validation unconditionally before fixing up cache pointers, and reject decoded source ranges or metadata indices that would be out-of-bounds during C++ materialization. Report executable validation failures as parser errors so callers can reject corrupt sidecars and fall back to source compilation. LibJS tests cover corrupt top-level bytecode, declaration bytecode, and declaration source spans.
26 lines
1.5 KiB
CMake
26 lines
1.5 KiB
CMake
ladybird_test(test-value-js.cpp LibJS LIBS LibJS LibUnicode)
|
|
ladybird_test(test-primitive-string.cpp LibJS LIBS LibJS LibGC)
|
|
ladybird_test(test-bytecode-cache.cpp LibJS LIBS LibCrypto LibGC LibJS)
|
|
|
|
ladybird_testjs_test(test-js.cpp test-js LIBS LibGC)
|
|
set_tests_properties(test-js PROPERTIES ENVIRONMENT "LADYBIRD_SOURCE_DIR=${LADYBIRD_SOURCE_DIR}")
|
|
|
|
if (NOT WIN32)
|
|
add_custom_target(test-js-bytecode ALL DEPENDS test-js "${CMAKE_BINARY_DIR}/bin/test-js-bytecode")
|
|
add_custom_command(
|
|
OUTPUT "${CMAKE_BINARY_DIR}/bin/test-js-bytecode"
|
|
COMMAND "${CMAKE_COMMAND}" -E copy "${ladybird_SOURCE_DIR}/Tests/LibJS/test-js-bytecode.py" "${CMAKE_BINARY_DIR}/bin/test-js-bytecode"
|
|
DEPENDS "${ladybird_SOURCE_DIR}/Tests/LibJS/test-js-bytecode.py"
|
|
)
|
|
add_test(NAME test-js-bytecode COMMAND "${CMAKE_BINARY_DIR}/bin/test-js-bytecode")
|
|
set_tests_properties(test-js-bytecode PROPERTIES ENVIRONMENT LADYBIRD_SOURCE_DIR=${LADYBIRD_SOURCE_DIR})
|
|
|
|
add_custom_target(test-js-ast ALL DEPENDS js "${CMAKE_BINARY_DIR}/bin/test-js-ast")
|
|
add_custom_command(
|
|
OUTPUT "${CMAKE_BINARY_DIR}/bin/test-js-ast"
|
|
COMMAND "${CMAKE_COMMAND}" -E copy "${ladybird_SOURCE_DIR}/Tests/LibJS/test-js-ast.py" "${CMAKE_BINARY_DIR}/bin/test-js-ast"
|
|
DEPENDS "${ladybird_SOURCE_DIR}/Tests/LibJS/test-js-ast.py"
|
|
)
|
|
add_test(NAME test-js-ast COMMAND "${CMAKE_BINARY_DIR}/bin/test-js-ast")
|
|
set_tests_properties(test-js-ast PROPERTIES ENVIRONMENT LADYBIRD_SOURCE_DIR=${LADYBIRD_SOURCE_DIR})
|
|
endif()
|