ladybird/AK/Debug.h.in

328 lines
5.4 KiB
C
Raw Normal View History

/*
* Copyright (c) 2020-2024, the SerenityOS developers.
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#ifndef AUDIO_DEBUG
# cmakedefine01 AUDIO_DEBUG
#endif
#ifndef AWAVLOADER_DEBUG
# cmakedefine01 AWAVLOADER_DEBUG
#endif
#ifndef AFLACLOADER_DEBUG
# cmakedefine01 AFLACLOADER_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
#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
#ifndef EDITOR_DEBUG
# cmakedefine01 EDITOR_DEBUG
#endif
#ifndef EMOJI_DEBUG
# cmakedefine01 EMOJI_DEBUG
#endif
2021-05-18 00:32:59 +03:00
#ifndef FILE_WATCHER_DEBUG
# cmakedefine01 FILE_WATCHER_DEBUG
2021-05-18 00:32:59 +03:00
#endif
#ifndef FLAC_ENCODER_DEBUG
# cmakedefine01 FLAC_ENCODER_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 HEAP_DEBUG
# cmakedefine01 HEAP_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 IDL_DEBUG
# cmakedefine01 IDL_DEBUG
#endif
#ifndef ILBM_DEBUG
# cmakedefine01 ILBM_DEBUG
#endif
#ifndef IMAGE_DECODER_DEBUG
# cmakedefine01 IMAGE_DECODER_DEBUG
#endif
#ifndef IMAGE_LOADER_DEBUG
# cmakedefine01 IMAGE_LOADER_DEBUG
#endif
#ifndef JBIG2_DEBUG
# cmakedefine01 JBIG2_DEBUG
#endif
#ifndef JOB_DEBUG
# cmakedefine01 JOB_DEBUG
#endif
#ifndef JPEG2000_DEBUG
# cmakedefine01 JPEG2000_DEBUG
#endif
#ifndef JS_BYTECODE_DEBUG
# cmakedefine01 JS_BYTECODE_DEBUG
#endif
2022-01-18 20:47:11 +03:00
#ifndef JS_MODULE_DEBUG
# cmakedefine01 JS_MODULE_DEBUG
2022-01-18 20:47:11 +03:00
#endif
#ifndef LEXER_DEBUG
# cmakedefine01 LEXER_DEBUG
#endif
#ifndef LIBWEB_CSS_ANIMATION_DEBUG
# cmakedefine01 LIBWEB_CSS_ANIMATION_DEBUG
#endif
#ifndef LIBWEB_CSS_DEBUG
# cmakedefine01 LIBWEB_CSS_DEBUG
#endif
#ifndef LINE_EDITOR_DEBUG
# cmakedefine01 LINE_EDITOR_DEBUG
#endif
#ifndef LZMA_DEBUG
# cmakedefine01 LZMA_DEBUG
#endif
#ifndef LZW_DEBUG
# cmakedefine01 LZW_DEBUG
#endif
#ifndef MACH_PORT_DEBUG
# cmakedefine01 MACH_PORT_DEBUG
#endif
#ifndef MATROSKA_DEBUG
# cmakedefine01 MATROSKA_DEBUG
#endif
#ifndef MATROSKA_TRACE_DEBUG
# cmakedefine01 MATROSKA_TRACE_DEBUG
#endif
#ifndef NETWORKJOB_DEBUG
# cmakedefine01 NETWORKJOB_DEBUG
#endif
#ifndef NT_DEBUG
# cmakedefine01 NT_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 PLAYBACK_MANAGER_DEBUG
# cmakedefine01 PLAYBACK_MANAGER_DEBUG
#endif
#ifndef PNG_DEBUG
# cmakedefine01 PNG_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 23:13:29 +03: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 23:13:29 +03:00
#endif
#ifndef REGEX_DEBUG
# cmakedefine01 REGEX_DEBUG
#endif
#ifndef REQUESTSERVER_DEBUG
# cmakedefine01 REQUESTSERVER_DEBUG
#endif
#ifndef RESOURCE_DEBUG
# cmakedefine01 RESOURCE_DEBUG
#endif
#ifndef RSA_PARSE_DEBUG
# cmakedefine01 RSA_PARSE_DEBUG
#endif
#ifndef SHARED_QUEUE_DEBUG
# cmakedefine01 SHARED_QUEUE_DEBUG
#endif
#ifndef SPAM_DEBUG
# cmakedefine01 SPAM_DEBUG
#endif
#ifndef SYNTAX_HIGHLIGHTING_DEBUG
# cmakedefine01 SYNTAX_HIGHLIGHTING_DEBUG
#endif
#ifndef TEXTEDITOR_DEBUG
# cmakedefine01 TEXTEDITOR_DEBUG
#endif
2023-10-29 01:05:26 +03:00
#ifndef TIFF_DEBUG
# cmakedefine01 TIFF_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 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-18 00:32:59 +03:00
#endif
2021-05-18 00:32:59 +03:00
#ifndef WASM_TRACE_DEBUG
# cmakedefine01 WASM_TRACE_DEBUG
#endif
2021-11-01 01:06:35 +03:00
#ifndef WASM_VALIDATOR_DEBUG
# cmakedefine01 WASM_VALIDATOR_DEBUG
2021-11-01 01:06:35 +03:00
#endif
#ifndef WEBDRIVER_DEBUG
# cmakedefine01 WEBDRIVER_DEBUG
#endif
#ifndef WEBDRIVER_ROUTE_DEBUG
# cmakedefine01 WEBDRIVER_ROUTE_DEBUG
#endif
#ifndef WEBGL_CONTEXT_DEBUG
# cmakedefine01 WEBGL_CONTEXT_DEBUG
#endif
2022-10-24 00:15:12 +03:00
#ifndef WEB_FETCH_DEBUG
# cmakedefine01 WEB_FETCH_DEBUG
2022-10-24 00:15:12 +03:00
#endif
#ifndef WEB_WORKER_DEBUG
# cmakedefine01 WEB_WORKER_DEBUG
#endif
#ifndef WEBP_DEBUG
# cmakedefine01 WEBP_DEBUG
#endif
#ifndef WORKER_THREAD_DEBUG
# cmakedefine01 WORKER_THREAD_DEBUG
#endif
#ifndef XML_PARSER_DEBUG
# cmakedefine01 XML_PARSER_DEBUG
#endif