2  * Copyright (C) 2012, 2013, 2014 Apple Inc. All rights reserved. 
   4  * Redistribution and use in source and binary forms, with or without 
   5  * modification, are permitted provided that the following conditions 
   7  * 1. Redistributions of source code must retain the above copyright 
   8  *    notice, this list of conditions and the following disclaimer. 
   9  * 2. Redistributions in binary form must reproduce the above copyright 
  10  *    notice, this list of conditions and the following disclaimer in the 
  11  *    documentation and/or other materials provided with the distribution. 
  13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 
  14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
  15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
  16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR 
  17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
  18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
  19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
  20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
  21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
  22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
  23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
  29 #include <wtf/Assertions.h> 
  30 #include <wtf/PrintStream.h> 
  34 const char* exitKindToString(ExitKind kind
) 
  44         return "BadExecutable"; 
  47     case BadCacheWatchpoint
: 
  48         return "BadCacheWatchpoint"; 
  49     case BadWeakConstantCache
: 
  50         return "BadWeakConstantCache"; 
  51     case BadWeakConstantCacheWatchpoint
: 
  52         return "BadWeakConstantCacheWatchpoint"; 
  54         return "BadIndexingType"; 
  58         return "NegativeZero"; 
  60         return "Int52Overflow"; 
  64         return "LoadFromHole"; 
  67     case InadequateCoverage
: 
  68         return "InadequateCoverage"; 
  69     case ArgumentsEscaped
: 
  70         return "ArgumentsEscaped"; 
  72         return "NotStringObject"; 
  75     case UncountableWatchpoint
: 
  76         return "UncountableWatchpoint"; 
  77     case UncountableInvalidation
: 
  78         return "UncountableInvalidation"; 
  79     case WatchdogTimerFired
: 
  80         return "WatchdogTimerFired"; 
  82         return "DebuggerEvent"; 
  84     RELEASE_ASSERT_NOT_REACHED(); 
  88 bool exitKindIsCountable(ExitKind kind
) 
  92         RELEASE_ASSERT_NOT_REACHED(); 
  95     case UncountableWatchpoint
: 
  96     case LoadFromHole
: // Already counted directly by the baseline JIT. 
  97     case StoreToHole
: // Already counted directly by the baseline JIT. 
  98     case OutOfBounds
: // Already counted directly by the baseline JIT. 
 109 void printInternal(PrintStream
& out
, JSC::ExitKind kind
) 
 111     out
.print(exitKindToString(kind
));