blob: 5a8a14a3cc6ad19ed40824b8302db90c4c474c3a [file] [log] [blame]
/*
* Copyright (C) 2018-2019 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "config.h"
#include "JSType.h"
#include <wtf/PrintStream.h>
namespace WTF {
#define CASE(__type) \
case JSC::__type: \
out.print(#__type); \
return;
void printInternal(PrintStream& out, JSC::JSType type)
{
switch (type) {
CASE(CellType)
CASE(StructureType)
CASE(StringType)
CASE(SymbolType)
CASE(HeapBigIntType)
CASE(CustomGetterSetterType)
CASE(APIValueWrapperType)
CASE(NativeExecutableType)
CASE(ProgramExecutableType)
CASE(ModuleProgramExecutableType)
CASE(EvalExecutableType)
CASE(FunctionExecutableType)
CASE(UnlinkedFunctionExecutableType)
CASE(UnlinkedProgramCodeBlockType)
CASE(UnlinkedModuleProgramCodeBlockType)
CASE(UnlinkedEvalCodeBlockType)
CASE(UnlinkedFunctionCodeBlockType)
CASE(CodeBlockType)
CASE(JSImmutableButterflyType)
CASE(JSSourceCodeType)
CASE(JSScriptFetcherType)
CASE(JSScriptFetchParametersType)
CASE(ObjectType)
CASE(FinalObjectType)
CASE(JSCalleeType)
CASE(JSFunctionType)
CASE(InternalFunctionType)
CASE(NullSetterFunctionType)
CASE(BooleanObjectType)
CASE(NumberObjectType)
CASE(ErrorInstanceType)
CASE(PureForwardingProxyType)
CASE(DirectArgumentsType)
CASE(ScopedArgumentsType)
CASE(ClonedArgumentsType)
CASE(ArrayType)
CASE(DerivedArrayType)
CASE(ArrayBufferType)
CASE(Int8ArrayType)
CASE(Uint8ArrayType)
CASE(Uint8ClampedArrayType)
CASE(Int16ArrayType)
CASE(Uint16ArrayType)
CASE(Int32ArrayType)
CASE(Uint32ArrayType)
CASE(Float32ArrayType)
CASE(Float64ArrayType)
CASE(BigInt64ArrayType)
CASE(BigUint64ArrayType)
CASE(DataViewType)
CASE(GetterSetterType)
CASE(GlobalObjectType)
CASE(GlobalLexicalEnvironmentType)
CASE(LexicalEnvironmentType)
CASE(ModuleEnvironmentType)
CASE(StrictEvalActivationType)
CASE(WithScopeType)
CASE(ModuleNamespaceObjectType)
CASE(RegExpObjectType)
CASE(JSDateType)
CASE(ProxyObjectType)
CASE(JSGeneratorType)
CASE(JSAsyncGeneratorType)
CASE(JSArrayIteratorType)
CASE(JSMapIteratorType)
CASE(JSSetIteratorType)
CASE(JSStringIteratorType)
CASE(JSPromiseType)
CASE(JSMapType)
CASE(JSSetType)
CASE(JSWeakMapType)
CASE(JSWeakSetType)
CASE(WebAssemblyModuleType)
CASE(StringObjectType)
CASE(DerivedStringObjectType)
CASE(MaxJSType)
}
}
#undef CASE
} // namespace WTF