serenity/AK/Debug.h.in

544 lines
8.9 KiB
C
Raw Normal View History

/*
* Copyright (c) 2020-2022, the SerenityOS developers.
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#ifndef AFLACLOADER_DEBUG
# cmakedefine01 AFLACLOADER_DEBUG
#endif
#ifndef AUDIO_DEBUG
# cmakedefine01 AUDIO_DEBUG
#endif
#ifndef AWAVLOADER_DEBUG
# cmakedefine01 AWAVLOADER_DEBUG
#endif
#ifndef BMP_DEBUG
# cmakedefine01 BMP_DEBUG
#endif
#ifndef BINDINGS_GENERATOR_DEBUG
# cmakedefine01 BINDINGS_GENERATOR_DEBUG
#endif
#ifndef CACHE_DEBUG
# cmakedefine01 CACHE_DEBUG
#endif
#ifndef CALLBACK_MACHINE_DEBUG
# cmakedefine01 CALLBACK_MACHINE_DEBUG
#endif
#ifndef CANVAS_RENDERING_CONTEXT_2D_DEBUG
# cmakedefine01 CANVAS_RENDERING_CONTEXT_2D_DEBUG
#endif
2023-03-03 12:12:56 +00:00
#ifndef CMAKE_DEBUG
# cmakedefine01 CMAKE_DEBUG
#endif
#ifndef COMPOSE_DEBUG
# cmakedefine01 COMPOSE_DEBUG
#endif
#ifndef COPY_DEBUG
# cmakedefine01 COPY_DEBUG
#endif
#ifndef CPP_DEBUG
# cmakedefine01 CPP_DEBUG
#endif
#ifndef CPP_LANGUAGE_SERVER_DEBUG
# cmakedefine01 CPP_LANGUAGE_SERVER_DEBUG
#endif
#ifndef CRYPTO_DEBUG
# cmakedefine01 CRYPTO_DEBUG
#endif
#ifndef CSS_LOADER_DEBUG
# cmakedefine01 CSS_LOADER_DEBUG
#endif
#ifndef CSS_PARSER_DEBUG
# cmakedefine01 CSS_PARSER_DEBUG
#endif
#ifndef CSS_TOKENIZER_DEBUG
# cmakedefine01 CSS_TOKENIZER_DEBUG
#endif
2021-05-15 15:02:40 +00:00
#ifndef DDS_DEBUG
# cmakedefine01 DDS_DEBUG
2021-05-15 15:02:40 +00:00
#endif
#ifndef DHCPV4_DEBUG
# cmakedefine01 DHCPV4_DEBUG
#endif
#ifndef DHCPV4CLIENT_DEBUG
# cmakedefine01 DHCPV4CLIENT_DEBUG
#endif
#ifndef DIFF_DEBUG
# cmakedefine01 DIFF_DEBUG
#endif
#ifndef DISASM_DUMP_DEBUG
# cmakedefine01 DISASM_DUMP_DEBUG
#endif
#ifndef DOUBLECLICK_DEBUG
# cmakedefine01 DOUBLECLICK_DEBUG
#endif
#ifndef DRAG_DEBUG
# cmakedefine01 DRAG_DEBUG
#endif
#ifndef DWARF_DEBUG
# cmakedefine01 DWARF_DEBUG
#endif
#ifndef DYNAMIC_LOAD_DEBUG
# cmakedefine01 DYNAMIC_LOAD_DEBUG
#endif
#ifndef EDITOR_DEBUG
# cmakedefine01 EDITOR_DEBUG
#endif
#ifndef ELF_IMAGE_DEBUG
# cmakedefine01 ELF_IMAGE_DEBUG
#endif
#ifndef EMOJI_DEBUG
# cmakedefine01 EMOJI_DEBUG
#endif
2021-05-17 21:32:59 +00:00
#ifndef ESCAPE_SEQUENCE_DEBUG
# cmakedefine01 ESCAPE_SEQUENCE_DEBUG
2021-05-17 21:32:59 +00:00
#endif
#ifndef EVENT_DEBUG
# cmakedefine01 EVENT_DEBUG
#endif
#ifndef FILE_CONTENT_DEBUG
# cmakedefine01 FILE_CONTENT_DEBUG
#endif
#ifndef FILL_PATH_DEBUG
# cmakedefine01 FILL_PATH_DEBUG
#endif
2021-05-17 21:32:59 +00:00
#ifndef FILE_WATCHER_DEBUG
# cmakedefine01 FILE_WATCHER_DEBUG
2021-05-17 21:32:59 +00:00
#endif
#ifndef GEMINI_DEBUG
# cmakedefine01 GEMINI_DEBUG
#endif
#ifndef GENERATE_DEBUG
# cmakedefine01 GENERATE_DEBUG
#endif
#ifndef GHASH_PROCESS_DEBUG
# cmakedefine01 GHASH_PROCESS_DEBUG
#endif
#ifndef GIF_DEBUG
# cmakedefine01 GIF_DEBUG
#endif
#ifndef GL_DEBUG
# cmakedefine01 GL_DEBUG
#endif
#ifndef GLOBAL_DTORS_DEBUG
# cmakedefine01 GLOBAL_DTORS_DEBUG
#endif
#ifndef GPT_DEBUG
# cmakedefine01 GPT_DEBUG
#endif
#ifndef HEAP_DEBUG
# cmakedefine01 HEAP_DEBUG
#endif
2021-05-20 12:27:58 +00:00
#ifndef HEARTS_DEBUG
# cmakedefine01 HEARTS_DEBUG
2021-05-20 12:27:58 +00:00
#endif
#ifndef HEX_DEBUG
# cmakedefine01 HEX_DEBUG
#endif
#ifndef HIGHLIGHT_FOCUSED_FRAME_DEBUG
# cmakedefine01 HIGHLIGHT_FOCUSED_FRAME_DEBUG
#endif
#ifndef HTML_SCRIPT_DEBUG
# cmakedefine01 HTML_SCRIPT_DEBUG
#endif
#ifndef HTTPJOB_DEBUG
# cmakedefine01 HTTPJOB_DEBUG
#endif
#ifndef HUNKS_DEBUG
# cmakedefine01 HUNKS_DEBUG
#endif
#ifndef ICO_DEBUG
# cmakedefine01 ICO_DEBUG
#endif
#ifndef IMAGE_DECODER_DEBUG
# cmakedefine01 IMAGE_DECODER_DEBUG
#endif
#ifndef IMAGE_LOADER_DEBUG
# cmakedefine01 IMAGE_LOADER_DEBUG
#endif
#ifndef ITEM_RECTS_DEBUG
# cmakedefine01 ITEM_RECTS_DEBUG
#endif
#ifndef JOB_DEBUG
# cmakedefine01 JOB_DEBUG
#endif
#ifndef JPEG_DEBUG
# cmakedefine01 JPEG_DEBUG
#endif
#ifndef JS_BYTECODE_DEBUG
# cmakedefine01 JS_BYTECODE_DEBUG
#endif
2022-01-18 17:47:11 +00:00
#ifndef JS_MODULE_DEBUG
# cmakedefine01 JS_MODULE_DEBUG
2022-01-18 17:47:11 +00:00
#endif
#ifndef KEYBOARD_SHORTCUTS_DEBUG
# cmakedefine01 KEYBOARD_SHORTCUTS_DEBUG
#endif
#ifndef LANGUAGE_SERVER_DEBUG
# cmakedefine01 LANGUAGE_SERVER_DEBUG
#endif
#ifndef LEXER_DEBUG
# cmakedefine01 LEXER_DEBUG
#endif
#ifndef LIBWEB_CSS_DEBUG
# cmakedefine01 LIBWEB_CSS_DEBUG
#endif
#ifndef LIBWEB_CSS_ANIMATION_DEBUG
# cmakedefine01 LIBWEB_CSS_ANIMATION_DEBUG
#endif
#ifndef LINE_EDITOR_DEBUG
# cmakedefine01 LINE_EDITOR_DEBUG
#endif
#ifndef LOG_DEBUG
# cmakedefine01 LOG_DEBUG
#endif
#ifndef LOOKUPSERVER_DEBUG
# cmakedefine01 LOOKUPSERVER_DEBUG
#endif
#ifndef LZMA_DEBUG
# cmakedefine01 LZMA_DEBUG
#endif
#ifndef MALLOC_DEBUG
# cmakedefine01 MALLOC_DEBUG
#endif
#ifndef MARKDOWN_DEBUG
# cmakedefine01 MARKDOWN_DEBUG
#endif
#ifndef MATROSKA_DEBUG
# cmakedefine01 MATROSKA_DEBUG
#endif
#ifndef MATROSKA_TRACE_DEBUG
# cmakedefine01 MATROSKA_TRACE_DEBUG
#endif
#ifndef MBR_DEBUG
# cmakedefine01 MBR_DEBUG
#endif
#ifndef MEMORY_DEBUG
# cmakedefine01 MEMORY_DEBUG
#endif
#ifndef MENU_DEBUG
# cmakedefine01 MENU_DEBUG
#endif
#ifndef MOVE_DEBUG
# cmakedefine01 MOVE_DEBUG
#endif
#ifndef NETWORKJOB_DEBUG
# cmakedefine01 NETWORKJOB_DEBUG
#endif
#ifndef NT_DEBUG
# cmakedefine01 NT_DEBUG
#endif
#ifndef OCCLUSIONS_DEBUG
# cmakedefine01 OCCLUSIONS_DEBUG
#endif
#ifndef OPENTYPE_GPOS_DEBUG
# cmakedefine01 OPENTYPE_GPOS_DEBUG
#endif
#ifndef HTML_PARSER_DEBUG
# cmakedefine01 HTML_PARSER_DEBUG
#endif
#ifndef PATH_DEBUG
# cmakedefine01 PATH_DEBUG
#endif
#ifndef PDF_DEBUG
# cmakedefine01 PDF_DEBUG
#endif
#ifndef PLAYBACK_MANAGER_DEBUG
# cmakedefine01 PLAYBACK_MANAGER_DEBUG
#endif
#ifndef PNG_DEBUG
# cmakedefine01 PNG_DEBUG
#endif
#ifndef PORTABLE_IMAGE_LOADER_DEBUG
# cmakedefine01 PORTABLE_IMAGE_LOADER_DEBUG
#endif
LibJS: Add initial support for Promises Almost a year after first working on this, it's finally done: an implementation of Promises for LibJS! :^) The core functionality is working and closely following the spec [1]. I mostly took the pseudo code and transformed it into C++ - if you read and understand it, you will know how the spec implements Promises; and if you read the spec first, the code will look very familiar. Implemented functions are: - Promise() constructor - Promise.prototype.then() - Promise.prototype.catch() - Promise.prototype.finally() - Promise.resolve() - Promise.reject() For the tests I added a new function to test-js's global object, runQueuedPromiseJobs(), which calls vm.run_queued_promise_jobs(). By design, queued jobs normally only run after the script was fully executed, making it improssible to test handlers in individual test() calls by default [2]. Subsequent commits include integrations into LibWeb and js(1) - pretty-printing, running queued promise jobs when necessary. This has an unusual amount of dbgln() statements, all hidden behind the PROMISE_DEBUG flag - I'm leaving them in for now as they've been very useful while debugging this, things can get quite complex with so many asynchronously executed functions. I've not extensively explored use of these APIs for promise-based functionality in LibWeb (fetch(), Notification.requestPermission() etc.), but we'll get there in due time. [1]: https://tc39.es/ecma262/#sec-promise-objects [2]: https://tc39.es/ecma262/#sec-jobs-and-job-queues
2021-04-01 20:13:29 +00:00
#ifndef PROMISE_DEBUG
# cmakedefine01 PROMISE_DEBUG
LibJS: Add initial support for Promises Almost a year after first working on this, it's finally done: an implementation of Promises for LibJS! :^) The core functionality is working and closely following the spec [1]. I mostly took the pseudo code and transformed it into C++ - if you read and understand it, you will know how the spec implements Promises; and if you read the spec first, the code will look very familiar. Implemented functions are: - Promise() constructor - Promise.prototype.then() - Promise.prototype.catch() - Promise.prototype.finally() - Promise.resolve() - Promise.reject() For the tests I added a new function to test-js's global object, runQueuedPromiseJobs(), which calls vm.run_queued_promise_jobs(). By design, queued jobs normally only run after the script was fully executed, making it improssible to test handlers in individual test() calls by default [2]. Subsequent commits include integrations into LibWeb and js(1) - pretty-printing, running queued promise jobs when necessary. This has an unusual amount of dbgln() statements, all hidden behind the PROMISE_DEBUG flag - I'm leaving them in for now as they've been very useful while debugging this, things can get quite complex with so many asynchronously executed functions. I've not extensively explored use of these APIs for promise-based functionality in LibWeb (fetch(), Notification.requestPermission() etc.), but we'll get there in due time. [1]: https://tc39.es/ecma262/#sec-promise-objects [2]: https://tc39.es/ecma262/#sec-jobs-and-job-queues
2021-04-01 20:13:29 +00:00
#endif
#ifndef PTHREAD_DEBUG
# cmakedefine01 PTHREAD_DEBUG
#endif
#ifndef REACHABLE_DEBUG
# cmakedefine01 REACHABLE_DEBUG
#endif
#ifndef REGEX_DEBUG
# cmakedefine01 REGEX_DEBUG
#endif
#ifndef REQUESTSERVER_DEBUG
# cmakedefine01 REQUESTSERVER_DEBUG
#endif
#ifndef RESIZE_DEBUG
# cmakedefine01 RESIZE_DEBUG
#endif
#ifndef RESOURCE_DEBUG
# cmakedefine01 RESOURCE_DEBUG
#endif
#ifndef RSA_PARSE_DEBUG
# cmakedefine01 RSA_PARSE_DEBUG
#endif
#ifndef SERVICE_DEBUG
# cmakedefine01 SERVICE_DEBUG
#endif
#ifndef SH_DEBUG
# cmakedefine01 SH_DEBUG
#endif
#ifndef SH_LANGUAGE_SERVER_DEBUG
# cmakedefine01 SH_LANGUAGE_SERVER_DEBUG
#endif
#ifndef SHARED_QUEUE_DEBUG
# cmakedefine01 SHARED_QUEUE_DEBUG
#endif
#ifndef SHELL_JOB_DEBUG
# cmakedefine01 SHELL_JOB_DEBUG
#endif
#ifndef SHELL_POSIX_PARSER_DEBUG
# cmakedefine01 SHELL_POSIX_PARSER_DEBUG
#endif
#ifndef SOLITAIRE_DEBUG
# cmakedefine01 SOLITAIRE_DEBUG
#endif
#ifndef SPAM_DEBUG
# cmakedefine01 SPAM_DEBUG
#endif
2023-05-13 11:58:26 +00:00
#ifndef SPICE_AGENT_DEBUG
# cmakedefine01 SPICE_AGENT_DEBUG
#endif
2021-04-18 21:34:17 +00:00
#ifndef SQL_DEBUG
# cmakedefine01 SQL_DEBUG
2021-04-18 21:34:17 +00:00
#endif
#ifndef SQLSERVER_DEBUG
# cmakedefine01 SQLSERVER_DEBUG
#endif
#ifndef SYNTAX_HIGHLIGHTING_DEBUG
# cmakedefine01 SYNTAX_HIGHLIGHTING_DEBUG
#endif
#ifndef SYSCALL_1_DEBUG
# cmakedefine01 SYSCALL_1_DEBUG
#endif
#ifndef SYSTEM_MENU_DEBUG
# cmakedefine01 SYSTEM_MENU_DEBUG
#endif
#ifndef SYSTEMSERVER_DEBUG
# cmakedefine01 SYSTEMSERVER_DEBUG
#endif
#ifndef TERMCAP_DEBUG
# cmakedefine01 TERMCAP_DEBUG
#endif
#ifndef TERMINAL_DEBUG
# cmakedefine01 TERMINAL_DEBUG
#endif
#ifndef TEXTEDITOR_DEBUG
# cmakedefine01 TEXTEDITOR_DEBUG
#endif
#ifndef TIME_ZONE_DEBUG
# cmakedefine01 TIME_ZONE_DEBUG
#endif
#ifndef TLS_DEBUG
# cmakedefine01 TLS_DEBUG
#endif
#ifndef TLS_SSL_KEYLOG_DEBUG
# cmakedefine01 TLS_SSL_KEYLOG_DEBUG
#endif
#ifndef TOKENIZER_TRACE_DEBUG
# cmakedefine01 TOKENIZER_TRACE_DEBUG
#endif
#ifndef UCI_DEBUG
# cmakedefine01 UCI_DEBUG
#endif
#ifndef UPDATE_COALESCING_DEBUG
# cmakedefine01 UPDATE_COALESCING_DEBUG
#endif
#ifndef URL_PARSER_DEBUG
# cmakedefine01 URL_PARSER_DEBUG
#endif
#ifndef UTF8_DEBUG
# cmakedefine01 UTF8_DEBUG
#endif
#ifndef VPX_DEBUG
# cmakedefine01 VPX_DEBUG
#endif
#ifndef WASI_DEBUG
# cmakedefine01 WASI_DEBUG
#endif
#ifndef WASI_FINE_GRAINED_DEBUG
# cmakedefine01 WASI_FINE_GRAINED_DEBUG
#endif
#ifndef WASM_BINPARSER_DEBUG
# cmakedefine01 WASM_BINPARSER_DEBUG
2021-05-17 21:32:59 +00:00
#endif
2021-05-17 21:32:59 +00:00
#ifndef WASM_TRACE_DEBUG
# cmakedefine01 WASM_TRACE_DEBUG
#endif
2021-10-31 22:06:35 +00:00
#ifndef WASM_VALIDATOR_DEBUG
# cmakedefine01 WASM_VALIDATOR_DEBUG
2021-10-31 22:06:35 +00:00
#endif
#ifndef WEBDRIVER_DEBUG
# cmakedefine01 WEBDRIVER_DEBUG
#endif
#ifndef WEBGL_CONTEXT_DEBUG
# cmakedefine01 WEBGL_CONTEXT_DEBUG
#endif
#ifndef WEBSERVER_DEBUG
# cmakedefine01 WEBSERVER_DEBUG
#endif
2022-10-23 21:15:12 +00:00
#ifndef WEB_FETCH_DEBUG
# cmakedefine01 WEB_FETCH_DEBUG
2022-10-23 21:15:12 +00:00
#endif
#ifndef WEB_WORKER_DEBUG
# cmakedefine01 WEB_WORKER_DEBUG
#endif
#ifndef WEBP_DEBUG
# cmakedefine01 WEBP_DEBUG
#endif
#ifndef WINDOWMANAGER_DEBUG
# cmakedefine01 WINDOWMANAGER_DEBUG
#endif
#ifndef WORKER_THREAD_DEBUG
# cmakedefine01 WORKER_THREAD_DEBUG
#endif
#ifndef WSMESSAGELOOP_DEBUG
# cmakedefine01 WSMESSAGELOOP_DEBUG
#endif
#ifndef WSSCREEN_DEBUG
# cmakedefine01 WSSCREEN_DEBUG
#endif
#ifndef XML_PARSER_DEBUG
# cmakedefine01 XML_PARSER_DEBUG
#endif