mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 23:50:19 +00:00
c0f22065ab
Adding the [UseNewAKString] extended attribute to an interface will cause all IDL string types to use String instead of DeprecatedString. This is done on an per interface level instead of per type/parameter because: - It's much simpler to implement, as the generators can already access the interface's extended attributes. Doing it per type/parameter would mean parsing and piping extended attributes for each type that doesn't already take extended attributes, such as unions. - Allows more incremental adoption of AK::String. For example, adding [UseNewAKString] to BodyInit would require refactoring Request, Response and XMLHttpRequest to AK::String in one swoop. Doing it on the interface allows you to convert just XHR and its dependencies at once, for example. - Simple string return types (i.e. not parameterised or not in a union) already accept any of the string types JS::PrimitiveString::create accepts. For example, you can add [UseNewAKString] to DOMStringMap to convert Element attributes to AK::String and still return AK::String from get_attribute, without adding [UseNewAKString] to Element. - Adding [UseNewAKString] to one function typically means adding it to a bunch of other functions, if not the rest of them. For example, adding [UseNewAKString] to the parameters FormData.append would either mean converting AK::String to AK::DeprecatedString or storing the AK::String as-is, making the other functions of FormData have to convert back from AK::String or also support AK::String. |
||
---|---|---|
.. | ||
Azure | ||
CMake | ||
HeaderCheck | ||
Lagom | ||
Screenshots | ||
ShellCompletions/zsh | ||
Websites | ||
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-libwasm-spec-test.py | ||
generate-libwasm-spec-test.sh | ||
grub-ebr.cfg | ||
grub-gpt.cfg | ||
grub-mbr.cfg | ||
install-ports-tree.sh | ||
label-pull-requests.js | ||
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 | ||
shell_include.sh | ||
text-to-cpp-string.sh | ||
toot-commits.js | ||
tweet-commits.js |