Bug Summary

File:Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/Release/DerivedSources/WebCore/CommandLineAPIModuleSourceBuiltins.h
Warning:line 146, column 5
Call argument uses a forward declared type 'FunctionExecutable *'

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple arm64-apple-macosx15.5.0 -O2 -Wundef-prefix=TARGET_OS_ -Werror=undef-prefix -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name UnifiedSource208.cpp -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=osx -analyzer-checker=security.insecureAPI.decodeValueOfObjCType -analyzer-checker=deadcode -analyzer-checker=cplusplus -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -analyzer-config-compatibility-mode=true -mrelocation-model pic -pic-level 2 -mframe-pointer=non-leaf -ffp-contract=on -fno-rounding-math -target-sdk-version=15.5 -fcompatibility-qualified-id-block-type-checking -fvisibility-inlines-hidden-static-local-var -fno-modulemap-allow-subdirectory-search -fdefine-target-os-macros -enable-tlsdesc -target-cpu apple-m1 -target-feature +v8.4a -target-feature +aes -target-feature +altnzcv -target-feature +ccdp -target-feature +ccpp -target-feature +complxnum -target-feature +crc -target-feature +dotprod -target-feature +flagm -target-feature +fp-armv8 -target-feature +fp16fml -target-feature +fptoint -target-feature +fullfp16 -target-feature +jsconv -target-feature +lse -target-feature +neon -target-feature +pauth -target-feature +perfmon -target-feature +predres -target-feature +ras -target-feature +rcpc -target-feature +rdm -target-feature +sb -target-feature +sha2 -target-feature +sha3 -target-feature +specrestrict -target-feature +ssbs -target-abi darwinpcs -dwarf-ext-refs -fmodule-format=obj -debug-info-kind=standalone -dwarf-version=5 -debugger-tuning=lldb -fdebug-compilation-dir=/Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/Source/WebCore -target-linker-version 1167.5 -fcoverage-compilation-dir=/Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/Source/WebCore -resource-dir /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/llvm-project/build/lib/clang/21 -dependency-file /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/scan-build-output/StaticAnalyzer/WebCore/WebCore/normal/arm64/UnifiedSource208.d -skip-unused-modulemap-deps -MT dependencies -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk -iquote /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/WebCore.build/Release/WebCore.build/WebCore-generated-files.hmap -iquote /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/WebCore.build/Release/WebCore.build/WebCore-project-headers.hmap -isystem /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/Source/WebCore/PAL/ThirdParty/dav1d/include -iframework /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/System/Library/PrivateFrameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/System/Library/Frameworks -include-pch /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/PrecompiledHeaders/SharedPrecompiledHeaders/12902642326230122134/WebCorePrefix.h.gch -D _LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D CLANG_WEBKIT_BRANCH=1 -D NDEBUG -D BUILDING_WEBKIT -D GL_SILENCE_DEPRECATION=1 -D GLES_SILENCE_DEPRECATION=1 -D __clang_analyzer__ -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/WebCore.build/Release/WebCore.build/WebCore-own-target-headers.hmap -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/WebCore.build/Release/WebCore.build/WebCore-all-target-headers.hmap -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/Release/include -I PAL -I ForwardingHeaders -I /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/usr/include/libxslt -I /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/usr/include/libxml2 -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/Release/DerivedSources/WebCore -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/Release/usr/local/include -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/Release/usr/local/include/WebKitAdditions -I /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/usr/local/include/WebKitAdditions -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/Release/usr/local/include -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitLibraries/SDKs/macosx15.0-additions.sdk/usr/local/include -I /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/usr/local/include -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/Release/usr/local/include/webrtc -I /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/usr/local/include/webrtc -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/Release/usr/local/include/webm -I /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/usr/local/include/webm -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/PAL.build/PAL.build/DerivedSources -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/PAL.build/Release/PAL.build/DerivedSources -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/Source/WebCore -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/WebCore.build/Release/WebCore.build/DerivedSources-normal/arm64 -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/WebCore.build/Release/WebCore.build/DerivedSources/arm64 -I /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/WebCore.build/Release/WebCore.build/DerivedSources -F/Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/Release -I/usr/local/include -stdlib=libc++ -internal-isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/usr/include/c++/v1 -internal-isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/usr/local/include -internal-isystem /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/llvm-project/build/lib/clang/21/include -internal-externc-isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/usr/include -internal-iframework /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/System/Library/Frameworks -internal-iframework /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/System/Library/SubFrameworks -internal-iframework /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/Library/Frameworks -Wno-trigraphs -Werror -Wno-missing-field-initializers -Wmissing-prototypes -Wunreachable-code -Wnon-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wsign-compare -Wno-shorten-64-to-32 -Wnewline-eof -Wno-c++11-extensions -Wno-implicit-fallthrough -Wdeprecated-declarations -Winvalid-offsetof -Wno-sign-conversion -Winfinite-recursion -Wmove -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wrange-loop-analysis -Wno-semicolon-before-method-body -Wall -Wc99-designator -Wconditional-uninitialized -Wextra -Wdeprecated-enum-enum-conversion -Wdeprecated-enum-float-conversion -Wenum-float-conversion -Wfinal-dtor-non-final-class -Wformat=2 -Wmisleading-indentation -Wpointer-to-int-cast -Wreorder-init-list -Wundef -Wunused-but-set-variable -Wvla -Werror=unguarded-availability -Wno-elaborated-enum-base -Wcast-qual -Wchar-subscripts -Wextra-tokens -Winit-self -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -Wimplicit-fallthrough -Wvla -Wno-unknown-warning-option -Wliteral-conversion -Wthread-safety -Wno-profile-instr-out-of-date -Wno-profile-instr-unprofiled -Wno-backend-plugin -Wunsafe-buffer-usage -std=c++2b -fdeprecated-macro -ferror-limit 19 -fmacro-backtrace-limit=0 -fvisibility=hidden -fvisibility-inlines-hidden -stack-protector 1 -fblocks -fencode-extended-block-signature -fno-rtti -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fno-cxx-modules -fno-implicit-modules -fskip-odr-check-in-gmf -fpascal-strings -fmax-type-align=16 -fdiagnostics-show-note-include-stack -vectorize-loops -vectorize-slp -fsafe-buffer-usage-suggestions -analyzer-output=html -analyzer-config report-in-main-source-file=true -analyzer-config nullability:NoDiagnoseCallsToSystemHeaders=true -analyzer-checker optin.osx.cocoa.localizability.NonLocalizedStringChecker -analyzer-checker security.insecureAPI.UncheckedReturn -analyzer-checker security.insecureAPI.getpw -analyzer-checker security.insecureAPI.gets -analyzer-checker security.insecureAPI.mkstemp -analyzer-checker security.insecureAPI.mktemp -analyzer-disable-checker security.insecureAPI.rand -analyzer-disable-checker security.insecureAPI.strcpy -analyzer-checker security.insecureAPI.vfork -analyzer-disable-checker alpha,apiModeling,core,cplusplus,deadcode,debug,fuchsia,nullability,optin,osx,security,unix,webkit -analyzer-checker alpha.webkit.ForwardDeclChecker,alpha.webkit.MemoryUnsafeCastChecker,alpha.webkit.NoDeleteChecker,alpha.webkit.NoUncheckedPtrMemberChecker,alpha.webkit.NoUnretainedMemberChecker,alpha.webkit.RetainPtrCtorAdoptChecker,alpha.webkit.UncheckedCallArgsChecker,alpha.webkit.UncheckedLocalVarsChecker,alpha.webkit.UncountedCallArgsChecker,alpha.webkit.UncountedLocalVarsChecker,alpha.webkit.UnretainedCallArgsChecker,alpha.webkit.UnretainedLambdaCapturesChecker,alpha.webkit.UnretainedLocalVarsChecker,webkit.NoUncountedMemberChecker,webkit.RefCntblBaseVirtualDtor,webkit.UncountedLambdaCapturesChecker -analyzer-config max-nodes=10000000 -analyzer-config verbose-report-filename=true -fdwarf2-cfi-asm -o /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/scan-build-output/StaticAnalyzer/WebCore/WebCore/normal/arm64/UnifiedSource208.plist -x c++ /Volumes/Data/worker/macOS-Safer-CPP-Checks-EWS/build/WebKitBuild/Release/DerivedSources/WebCore/unified-sources/UnifiedSource208.cpp
1/*
2 * Copyright (c) 2007, 2022 -2022 Apple Inc. All rights reserved.
3 * Copyright (c) 2016 Apple Inc. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
15 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
16 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
18 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
24 * THE POSSIBILITY OF SUCH DAMAGE.
25 *
26 */
27
28// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
29// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
30
31#pragma once
32
33#include <cstdint>
34
35#include <JavaScriptCore/BuiltinUtils.h>
36#include <JavaScriptCore/Identifier.h>
37#include <JavaScriptCore/JSFunction.h>
38#include <JavaScriptCore/UnlinkedFunctionExecutable.h>
39
40namespace JSC {
41class FunctionExecutable;
42}
43
44namespace WebCore {
45
46/* CommandLineAPIModuleSource */
47extern const char* const s_commandLineAPIModuleSourceInjectModuleCode;
48extern const int s_commandLineAPIModuleSourceInjectModuleCodeLength;
49extern const JSC::ConstructAbility s_commandLineAPIModuleSourceInjectModuleCodeConstructAbility;
50extern const JSC::ConstructorKind s_commandLineAPIModuleSourceInjectModuleCodeConstructorKind;
51extern const JSC::ImplementationVisibility s_commandLineAPIModuleSourceInjectModuleCodeImplementationVisibility;
52extern const JSC::InlineAttribute s_commandLineAPIModuleSourceInjectModuleCodeInlineAttribute;
53
54#define WEBCORE_FOREACH_COMMANDLINEAPIMODULESOURCE_BUILTIN_DATA(macro)macro(injectModule, commandLineAPIModuleSourceInjectModule, 1
)
\
55 macro(injectModule, commandLineAPIModuleSourceInjectModule, 1) \
56
57#define WEBCORE_BUILTIN_COMMANDLINEAPIMODULESOURCE_INJECTMODULE1 1
58
59#define WEBCORE_FOREACH_COMMANDLINEAPIMODULESOURCE_BUILTIN_CODE(macro)macro(commandLineAPIModuleSourceInjectModuleCode, injectModule
, ASCIILiteral(), s_commandLineAPIModuleSourceInjectModuleCodeLength
)
\
60 macro(commandLineAPIModuleSourceInjectModuleCode, injectModule, ASCIILiteral(), s_commandLineAPIModuleSourceInjectModuleCodeLength) \
61
62#define WEBCORE_FOREACH_COMMANDLINEAPIMODULESOURCE_BUILTIN_FUNCTION_NAME(macro)macro(injectModule) \
63 macro(injectModule) \
64
65#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
66 JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
67
68WEBCORE_FOREACH_COMMANDLINEAPIMODULESOURCE_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)DECLARE_BUILTIN_GENERATOR(commandLineAPIModuleSourceInjectModuleCode
, injectModule, ASCIILiteral(), s_commandLineAPIModuleSourceInjectModuleCodeLength
)
69#undef DECLARE_BUILTIN_GENERATOR
70
71class CommandLineAPIModuleSourceBuiltinsWrapper : private JSC::WeakHandleOwner {
72public:
73 explicit CommandLineAPIModuleSourceBuiltinsWrapper(JSC::VM& vm)
74 : m_vm(vm)
75 WEBCORE_FOREACH_COMMANDLINEAPIMODULESOURCE_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES), m_injectModule(JSC::Identifier::fromString(vm, "injectModule"
""_s)), m_injectModulePrivateName(JSC::Identifier::fromUid(JSC
::PrivateName(JSC::PrivateName::PrivateSymbol, "injectModule"
""_s)))
76#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(unsafeMakeSpan(s_##name, static_cast<size_t>(length))), { }, JSC::SourceTaintedOrigin::Untainted))
77 WEBCORE_FOREACH_COMMANDLINEAPIMODULESOURCE_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)INITIALIZE_BUILTIN_SOURCE_MEMBERS(commandLineAPIModuleSourceInjectModuleCode
, injectModule, ASCIILiteral(), s_commandLineAPIModuleSourceInjectModuleCodeLength
)
78#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
79 {
80 }
81
82#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
83 JSC::UnlinkedFunctionExecutable* name##Executable(); \
84 const JSC::SourceCode& name##Source() const { return m_##name##Source; }
85 WEBCORE_FOREACH_COMMANDLINEAPIMODULESOURCE_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)EXPOSE_BUILTIN_EXECUTABLES(commandLineAPIModuleSourceInjectModuleCode
, injectModule, ASCIILiteral(), s_commandLineAPIModuleSourceInjectModuleCodeLength
)
86#undef EXPOSE_BUILTIN_EXECUTABLES
87
88 WEBCORE_FOREACH_COMMANDLINEAPIMODULESOURCE_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)const JSC::Identifier& injectModulePublicName() const { return
m_injectModule; } const JSC::Identifier& injectModulePrivateName
() const { return m_injectModulePrivateName; }
89
90 void exportNames();
91
92private:
93 JSC::VM& m_vm;
94
95 WEBCORE_FOREACH_COMMANDLINEAPIMODULESOURCE_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)const JSC::Identifier m_injectModule; const JSC::Identifier m_injectModulePrivateName
;
96
97#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
98 JSC::SourceCode m_##name##Source;\
99 JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
100 WEBCORE_FOREACH_COMMANDLINEAPIMODULESOURCE_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)DECLARE_BUILTIN_SOURCE_MEMBERS(commandLineAPIModuleSourceInjectModuleCode
, injectModule, ASCIILiteral(), s_commandLineAPIModuleSourceInjectModuleCodeLength
)
101#undef DECLARE_BUILTIN_SOURCE_MEMBERS
102
103};
104
105#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
106inline JSC::UnlinkedFunctionExecutable* CommandLineAPIModuleSourceBuiltinsWrapper::name##Executable() \
107{\
108 if (!m_##name##Executable) {\
109 JSC::Identifier executableName = functionName##PublicName();\
110 if (overriddenName)\
111 executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
112 m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility, s_##name##InlineAttribute), this, &m_##name##Executable);\
113 }\
114 return m_##name##Executable.get();\
115}
116WEBCORE_FOREACH_COMMANDLINEAPIMODULESOURCE_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)DEFINE_BUILTIN_EXECUTABLES(commandLineAPIModuleSourceInjectModuleCode
, injectModule, ASCIILiteral(), s_commandLineAPIModuleSourceInjectModuleCodeLength
)
117#undef DEFINE_BUILTIN_EXECUTABLES
118
119inline void CommandLineAPIModuleSourceBuiltinsWrapper::exportNames()
120{
121#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
122 WEBCORE_FOREACH_COMMANDLINEAPIMODULESOURCE_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)EXPORT_FUNCTION_NAME(injectModule)
123#undef EXPORT_FUNCTION_NAME
124}
125
126class CommandLineAPIModuleSourceBuiltinFunctions {
127public:
128 explicit CommandLineAPIModuleSourceBuiltinFunctions(JSC::VM& vm) : m_vm(vm) { }
129
130 void init(JSC::JSGlobalObject&);
131 template<typename Visitor> void visit(Visitor&);
132
133public:
134 JSC::VM& m_vm;
135
136#define DECLARE_BUILTIN_SOURCE_MEMBERS(functionName) \
137 JSC::WriteBarrier<JSC::JSFunction> m_##functionName##Function;
138 WEBCORE_FOREACH_COMMANDLINEAPIMODULESOURCE_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_SOURCE_MEMBERS)DECLARE_BUILTIN_SOURCE_MEMBERS(injectModule)
139#undef DECLARE_BUILTIN_SOURCE_MEMBERS
140};
141
142inline void CommandLineAPIModuleSourceBuiltinFunctions::init(JSC::JSGlobalObject& globalObject)
143{
144#define EXPORT_FUNCTION(codeName, functionName, overriddenName, length)\
145 m_##functionName##Function.set(m_vm, &globalObject, JSC::JSFunction::create(m_vm, &globalObject, codeName##Generator(m_vm), &globalObject));
146 WEBCORE_FOREACH_COMMANDLINEAPIMODULESOURCE_BUILTIN_CODE(EXPORT_FUNCTION)EXPORT_FUNCTION(commandLineAPIModuleSourceInjectModuleCode, injectModule
, ASCIILiteral(), s_commandLineAPIModuleSourceInjectModuleCodeLength
)
Call argument uses a forward declared type 'FunctionExecutable *'
147#undef EXPORT_FUNCTION
148}
149
150template<typename Visitor>
151inline void CommandLineAPIModuleSourceBuiltinFunctions::visit(Visitor& visitor)
152{
153#define VISIT_FUNCTION(name) visitor.append(m_##name##Function);
154 WEBCORE_FOREACH_COMMANDLINEAPIMODULESOURCE_BUILTIN_FUNCTION_NAME(VISIT_FUNCTION)VISIT_FUNCTION(injectModule)
155#undef VISIT_FUNCTION
156}
157
158template void CommandLineAPIModuleSourceBuiltinFunctions::visit(JSC::AbstractSlotVisitor&);
159template void CommandLineAPIModuleSourceBuiltinFunctions::visit(JSC::SlotVisitor&);
160
161
162
163} // namespace WebCore