| /* | 
 |  * Copyright (C) 2017 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 "Intrinsic.h" | 
 |  | 
 | #include <wtf/PrintStream.h> | 
 |  | 
 | namespace JSC { | 
 |  | 
 | const char* intrinsicName(Intrinsic intrinsic) | 
 | { | 
 |     switch (intrinsic) { | 
 |     case NoIntrinsic: | 
 |         return "NoIntrinsic"; | 
 |     case AbsIntrinsic: | 
 |         return "AbsIntrinsic"; | 
 |     case ACosIntrinsic: | 
 |         return "ACosIntrinsic"; | 
 |     case ASinIntrinsic: | 
 |         return "ASinIntrinsic"; | 
 |     case ATanIntrinsic: | 
 |         return "ATanIntrinsic"; | 
 |     case ACoshIntrinsic: | 
 |         return "ACoshIntrinsic"; | 
 |     case ASinhIntrinsic: | 
 |         return "ASinhIntrinsic"; | 
 |     case ATanhIntrinsic: | 
 |         return "ATanhIntrinsic"; | 
 |     case MinIntrinsic: | 
 |         return "MinIntrinsic"; | 
 |     case MaxIntrinsic: | 
 |         return "MaxIntrinsic"; | 
 |     case SqrtIntrinsic: | 
 |         return "SqrtIntrinsic"; | 
 |     case SinIntrinsic: | 
 |         return "SinIntrinsic"; | 
 |     case CbrtIntrinsic: | 
 |         return "CbrtIntrinsic"; | 
 |     case Clz32Intrinsic: | 
 |         return "Clz32Intrinsic"; | 
 |     case CosIntrinsic: | 
 |         return "CosIntrinsic"; | 
 |     case TanIntrinsic: | 
 |         return "TanIntrinsic"; | 
 |     case CoshIntrinsic: | 
 |         return "CoshIntrinsic"; | 
 |     case SinhIntrinsic: | 
 |         return "SinhIntrinsic"; | 
 |     case TanhIntrinsic: | 
 |         return "TanhIntrinsic"; | 
 |     case ArrayIndexOfIntrinsic: | 
 |         return "ArrayIndexOfIntrinsic"; | 
 |     case ArrayPushIntrinsic: | 
 |         return "ArrayPushIntrinsic"; | 
 |     case ArrayPopIntrinsic: | 
 |         return "ArrayPopIntrinsic"; | 
 |     case ArraySliceIntrinsic: | 
 |         return "ArraySliceIntrinsic"; | 
 |     case CharCodeAtIntrinsic: | 
 |         return "CharCodeAtIntrinsic"; | 
 |     case CharAtIntrinsic: | 
 |         return "CharAtIntrinsic"; | 
 |     case FromCharCodeIntrinsic: | 
 |         return "FromCharCodeIntrinsic"; | 
 |     case PowIntrinsic: | 
 |         return "PowIntrinsic"; | 
 |     case FloorIntrinsic: | 
 |         return "FloorIntrinsic"; | 
 |     case CeilIntrinsic: | 
 |         return "CeilIntrinsic"; | 
 |     case RoundIntrinsic: | 
 |         return "RoundIntrinsic"; | 
 |     case ExpIntrinsic: | 
 |         return "ExpIntrinsic"; | 
 |     case Expm1Intrinsic: | 
 |         return "Expm1Intrinsic"; | 
 |     case LogIntrinsic: | 
 |         return "LogIntrinsic"; | 
 |     case Log10Intrinsic: | 
 |         return "Log10Intrinsic"; | 
 |     case Log1pIntrinsic: | 
 |         return "Log1pIntrinsic"; | 
 |     case Log2Intrinsic: | 
 |         return "Log2Intrinsic"; | 
 |     case RegExpExecIntrinsic: | 
 |         return "RegExpExecIntrinsic"; | 
 |     case RegExpTestIntrinsic: | 
 |         return "RegExpTestIntrinsic"; | 
 |     case RegExpTestFastIntrinsic: | 
 |         return "RegExpTestFastIntrinsic"; | 
 |     case StringPrototypeValueOfIntrinsic: | 
 |         return "StringPrototypeValueOfIntrinsic"; | 
 |     case StringPrototypeReplaceIntrinsic: | 
 |         return "StringPrototypeReplaceIntrinsic"; | 
 |     case StringPrototypeReplaceRegExpIntrinsic: | 
 |         return "StringPrototypeReplaceRegExpIntrinsic"; | 
 |     case StringPrototypeToLowerCaseIntrinsic: | 
 |         return "StringPrototypeToLowerCaseIntrinsic"; | 
 |     case NumberPrototypeToStringIntrinsic: | 
 |         return "NumberPrototypeToStringIntrinsic"; | 
 |     case IMulIntrinsic: | 
 |         return "IMulIntrinsic"; | 
 |     case RandomIntrinsic: | 
 |         return "RandomIntrinsic"; | 
 |     case FRoundIntrinsic: | 
 |         return "FRoundIntrinsic"; | 
 |     case TruncIntrinsic: | 
 |         return "TruncIntrinsic"; | 
 |     case IsTypedArrayViewIntrinsic: | 
 |         return "IsTypedArrayViewIntrinsic"; | 
 |     case BoundThisNoArgsFunctionCallIntrinsic: | 
 |         return "BoundThisNoArgsFunctionCallIntrinsic"; | 
 |     case JSMapGetIntrinsic: | 
 |         return "JSMapGetIntrinsic"; | 
 |     case JSMapHasIntrinsic: | 
 |         return "JSMapHasIntrinsic"; | 
 |     case JSSetHasIntrinsic: | 
 |         return "JSSetHasIntrinsic"; | 
 |     case HasOwnPropertyIntrinsic: | 
 |         return "HasOwnPropertyIntrinsic"; | 
 |     case AtomicsAddIntrinsic: | 
 |         return "AtomicsAddIntrinsic"; | 
 |     case AtomicsAndIntrinsic: | 
 |         return "AtomicsAndIntrinsic"; | 
 |     case AtomicsCompareExchangeIntrinsic: | 
 |         return "AtomicsCompareExchangeIntrinsic"; | 
 |     case AtomicsExchangeIntrinsic: | 
 |         return "AtomicsExchangeIntrinsic"; | 
 |     case AtomicsIsLockFreeIntrinsic: | 
 |         return "AtomicsIsLockFreeIntrinsic"; | 
 |     case AtomicsLoadIntrinsic: | 
 |         return "AtomicsLoadIntrinsic"; | 
 |     case AtomicsOrIntrinsic: | 
 |         return "AtomicsOrIntrinsic"; | 
 |     case AtomicsStoreIntrinsic: | 
 |         return "AtomicsStoreIntrinsic"; | 
 |     case AtomicsSubIntrinsic: | 
 |         return "AtomicsSubIntrinsic"; | 
 |     case AtomicsWaitIntrinsic: | 
 |         return "AtomicsWaitIntrinsic"; | 
 |     case AtomicsWakeIntrinsic: | 
 |         return "AtomicsWakeIntrinsic"; | 
 |     case AtomicsXorIntrinsic: | 
 |         return "AtomicsXorIntrinsic"; | 
 |     case ParseIntIntrinsic: | 
 |         return "ParseIntIntrinsic"; | 
 |     case TypedArrayLengthIntrinsic: | 
 |         return "TypedArrayLengthIntrinsic"; | 
 |     case TypedArrayByteLengthIntrinsic: | 
 |         return "TypedArrayByteLengthIntrinsic"; | 
 |     case TypedArrayByteOffsetIntrinsic: | 
 |         return "TypedArrayByteOffsetIntrinsic"; | 
 |     case DFGTrueIntrinsic: | 
 |         return "DFGTrueIntrinsic"; | 
 |     case OSRExitIntrinsic: | 
 |         return "OSRExitIntrinsic"; | 
 |     case IsFinalTierIntrinsic: | 
 |         return "IsFinalTierIntrinsic"; | 
 |     case SetInt32HeapPredictionIntrinsic: | 
 |         return "SetInt32HeapPredictionIntrinsic"; | 
 |     case CheckInt32Intrinsic: | 
 |         return "CheckInt32Intrinsic"; | 
 |     case FiatInt52Intrinsic: | 
 |         return "FiatInt52Intrinsic"; | 
 |     } | 
 |     RELEASE_ASSERT_NOT_REACHED(); | 
 |     return nullptr; | 
 | } | 
 |  | 
 | } // namespace JSC | 
 |  | 
 | namespace WTF { | 
 |  | 
 | void printInternal(PrintStream& out, JSC::Intrinsic intrinsic) | 
 | { | 
 |     out.print(JSC::intrinsicName(intrinsic)); | 
 | } | 
 |  | 
 | } // namespace WTF | 
 |  |