mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-23 01:41:59 -05:00
68452c749a
Due to the way we lazily construct prototypes and constructors for web platform interfaces, it's possible for nested GC allocation to occur while GC objects have been allocated but not fully constructed. If the garbage collector ends up running in this state, it may attempt to call JS::Cell::visit_edges() on an object whose vtable pointer hasn't been set up yet. This patch works around the issue by deferring GC while intrinsics are being brought up. Furthermore, we also create a dummy global object for the internal realm, and populate it with intrinsics. This works around the same issue happening when allocating something (like the default UA stylesheets) in the internal realm. These solutions are pretty hacky and sad, so I've left FIXMEs about finding a nicer way. |
||
---|---|---|
.. | ||
Azure | ||
CMake | ||
HeaderCheck | ||
Lagom | ||
Screenshots | ||
ShellCompletions/zsh | ||
Websites | ||
.shell_include.sh | ||
analyze-qemu-coverage.sh | ||
bochsrc | ||
build-image-extlinux.sh | ||
build-image-grub.sh | ||
build-image-limine.sh | ||
build-image-qemu.sh | ||
build-manpages-website.sh | ||
build-native-partition.sh | ||
build-root-filesystem.sh | ||
check-ak-test-files.sh | ||
check-debug-flags.sh | ||
check-emoji.py | ||
check-markdown.sh | ||
check-newlines-at-eof.py | ||
check-png-sizes.sh | ||
check-style.py | ||
check-symbols.sh | ||
convert-markdown-links.lua | ||
debug-kernel.sh | ||
export-argsparser-manpages.sh | ||
extlinux.conf | ||
generate-embedded-resource-assembly.sh | ||
generate-emoji-txt.sh | ||
generate-libwasm-spec-test.py | ||
generate-libwasm-spec-test.sh | ||
grub-ebr.cfg | ||
grub-gpt.cfg | ||
grub-mbr.cfg | ||
install-ports-tree.sh | ||
limine.cfg | ||
lint-ci.sh | ||
lint-clang-format.sh | ||
lint-commit.sh | ||
lint-executable-resources.sh | ||
lint-gml-format.sh | ||
lint-keymaps.py | ||
lint-ports.py | ||
lint-prettier.sh | ||
lint-python.sh | ||
lint-shell-scripts.sh | ||
new-project.sh | ||
refresh-serenity-qtcreator.sh | ||
run.sh | ||
serenity.sh | ||
serenity_gdb.py | ||
text-to-cpp-string.sh | ||
tweet-commits.js |