/ runtime / TypedArrayType.cpp
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