TypedArrayType.cpp
1 /* 2 * Copyright (C) 2013-2018 Apple Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 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. 12 * 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. 24 */ 25 26 #include "config.h" 27 #include "TypedArrayType.h" 28 29 #include "JSTypedArrayConstructors.h" 30 31 namespace JSC { 32 33 const ClassInfo* constructorClassInfoForType(TypedArrayType type) 34 { 35 switch (type) { 36 case NotTypedArray: 37 return nullptr; 38 case TypeInt8: 39 return JSInt8ArrayConstructor::info(); 40 case TypeUint8: 41 return JSUint8ArrayConstructor::info(); 42 case TypeUint8Clamped: 43 return JSUint8ClampedArrayConstructor::info(); 44 case TypeInt16: 45 return JSInt16ArrayConstructor::info(); 46 case TypeUint16: 47 return JSUint16ArrayConstructor::info(); 48 case TypeInt32: 49 return JSInt32ArrayConstructor::info(); 50 case TypeUint32: 51 return JSUint32ArrayConstructor::info(); 52 case TypeFloat32: 53 return JSFloat32ArrayConstructor::info(); 54 case TypeFloat64: 55 return JSFloat64ArrayConstructor::info(); 56 case TypeDataView: 57 return JSDataViewConstructor::info(); 58 } 59 RELEASE_ASSERT_NOT_REACHED(); 60 return nullptr; 61 } 62 63 } // namespace JSC 64 65 namespace WTF { 66 67 using namespace JSC; 68 69 void printInternal(PrintStream& out, TypedArrayType type) 70 { 71 switch (type) { 72 case NotTypedArray: 73 out.print("NotTypedArray"); 74 return; 75 case TypeInt8: 76 out.print("TypeInt8"); 77 return; 78 case TypeInt16: 79 out.print("TypeInt16"); 80 return; 81 case TypeInt32: 82 out.print("TypeInt32"); 83 return; 84 case TypeUint8: 85 out.print("TypeUint8"); 86 return; 87 case TypeUint8Clamped: 88 out.print("TypeUint8Clamped"); 89 return; 90 case TypeUint16: 91 out.print("TypeUint16"); 92 return; 93 case TypeUint32: 94 out.print("TypeUint32"); 95 return; 96 case TypeFloat32: 97 out.print("TypeFloat32"); 98 return; 99 case TypeFloat64: 100 out.print("TypeFloat64"); 101 return; 102 case TypeDataView: 103 out.print("TypeDataView"); 104 return; 105 } 106 107 RELEASE_ASSERT_NOT_REACHED(); 108 } 109 110 } // namespace WTF 111