// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

#ifndef VM_BOOTSTRAP_NATIVES_H_
#define VM_BOOTSTRAP_NATIVES_H_

#include "vm/native_entry.h"

// bootstrap dart natives used in the core dart library.

namespace dart {

// List of bootstrap native entry points used in the core dart library.
#define BOOTSTRAP_NATIVE_LIST(V)                                               \
  V(Object_getHash, 1)                                                         \
  V(Object_setHash, 2)                                                         \
  V(Object_toString, 1)                                                        \
  V(Object_noSuchMethod, 6)                                                    \
  V(Object_runtimeType, 1)                                                     \
  V(Object_instanceOf, 5)                                                      \
  V(Object_as, 4)                                                              \
  V(Object_cid, 1)                                                             \
  V(Function_apply, 2)                                                         \
  V(FunctionImpl_equals, 2)                                                    \
  V(FunctionImpl_hashCode, 1)                                                  \
  V(InvocationMirror_invoke, 4)                                                \
  V(AbstractType_toString, 1)                                                  \
  V(Identical_comparison, 2)                                                   \
  V(Integer_bitAndFromInteger, 2)                                              \
  V(Integer_bitOrFromInteger, 2)                                               \
  V(Integer_bitXorFromInteger, 2)                                              \
  V(Integer_addFromInteger, 2)                                                 \
  V(Integer_subFromInteger, 2)                                                 \
  V(Integer_mulFromInteger, 2)                                                 \
  V(Integer_truncDivFromInteger, 2)                                            \
  V(Integer_moduloFromInteger, 2)                                              \
  V(Integer_greaterThanFromInteger, 2)                                         \
  V(Integer_equalToInteger, 2)                                                 \
  V(Integer_fromEnvironment, 3)                                                \
  V(Integer_parse, 1)                                                          \
  V(Integer_leftShiftWithMask32, 3)                                            \
  V(Bool_fromEnvironment, 3)                                                   \
  V(RawReceivePortImpl_factory, 1)                                             \
  V(RawReceivePortImpl_closeInternal, 1)                                       \
  V(SendPortImpl_sendInternal_, 3)                                             \
  V(Smi_shlFromInt, 2)                                                         \
  V(Smi_shrFromInt, 2)                                                         \
  V(Smi_bitNegate, 1)                                                          \
  V(Smi_bitLength, 1)                                                          \
  V(Mint_bitNegate, 1)                                                         \
  V(Mint_bitLength, 1)                                                         \
  V(Mint_shlFromInt, 2)                                                        \
  V(Bigint_bitNegate, 1)                                                       \
  V(Bigint_bitLength, 1)                                                       \
  V(Bigint_shlFromInt, 2)                                                      \
  V(Double_getIsNegative, 1)                                                   \
  V(Double_getIsInfinite, 1)                                                   \
  V(Double_getIsNaN, 1)                                                        \
  V(Double_add, 2)                                                             \
  V(Double_sub, 2)                                                             \
  V(Double_mul, 2)                                                             \
  V(Double_div, 2)                                                             \
  V(Double_trunc_div, 2)                                                       \
  V(Double_remainder, 2)                                                       \
  V(Double_modulo, 2)                                                          \
  V(Double_greaterThanFromInteger, 2)                                          \
  V(Double_equalToInteger, 2)                                                  \
  V(Double_greaterThan, 2)                                                     \
  V(Double_equal, 2)                                                           \
  V(Double_doubleFromInteger, 2)                                               \
  V(Double_round, 1)                                                           \
  V(Double_floor, 1)                                                           \
  V(Double_ceil, 1)                                                            \
  V(Double_truncate, 1)                                                        \
  V(Double_toInt, 1)                                                           \
  V(Double_parse, 1)                                                           \
  V(Double_toStringAsFixed, 2)                                                 \
  V(Double_toStringAsExponential, 2)                                           \
  V(Double_toStringAsPrecision, 2)                                             \
  V(JSSyntaxRegExp_factory, 4)                                                 \
  V(JSSyntaxRegExp_getPattern, 1)                                              \
  V(JSSyntaxRegExp_getIsMultiLine, 1)                                          \
  V(JSSyntaxRegExp_getIsCaseSensitive, 1)                                      \
  V(JSSyntaxRegExp_getGroupCount, 1)                                           \
  V(JSSyntaxRegExp_ExecuteMatch, 3)                                            \
  V(List_allocate, 2)                                                          \
  V(List_getIndexed, 2)                                                        \
  V(List_setIndexed, 3)                                                        \
  V(List_getLength, 1)                                                         \
  V(List_copyFromObjectArray, 5)                                               \
  V(StringBase_createFromCodePoints, 1)                                        \
  V(StringBase_substringUnchecked, 3)                                          \
  V(StringBuffer_createStringFromUint16Array, 3)                               \
  V(OneByteString_substringUnchecked, 3)                                       \
  V(OneByteString_splitWithCharCode, 2)                                        \
  V(OneByteString_allocate, 1)                                                 \
  V(OneByteString_setAt, 3)                                                    \
  V(ExternalOneByteString_getCid, 0)                                           \
  V(String_getHashCode, 1)                                                     \
  V(String_getLength, 1)                                                       \
  V(String_charAt, 2)                                                          \
  V(String_codeUnitAt, 2)                                                      \
  V(String_concat, 2)                                                          \
  V(String_fromEnvironment, 3)                                                 \
  V(String_toLowerCase, 1)                                                     \
  V(String_toUpperCase, 1)                                                     \
  V(String_concatRange, 3)                                                     \
  V(Math_sqrt, 1)                                                              \
  V(Math_sin, 1)                                                               \
  V(Math_cos, 1)                                                               \
  V(Math_tan, 1)                                                               \
  V(Math_asin, 1)                                                              \
  V(Math_acos, 1)                                                              \
  V(Math_atan, 1)                                                              \
  V(Math_atan2, 2)                                                             \
  V(Math_exp, 1)                                                               \
  V(Math_log, 1)                                                               \
  V(Math_doublePow, 2)                                                         \
  V(Random_nextState, 1)                                                       \
  V(Random_setupSeed, 2)                                                       \
  V(DateNatives_currentTimeMillis, 0)                                          \
  V(DateNatives_timeZoneName, 1)                                               \
  V(DateNatives_timeZoneOffsetInSeconds, 1)                                    \
  V(DateNatives_localTimeZoneAdjustmentInSeconds, 0)                           \
  V(AssertionError_throwNew, 2)                                                \
  V(TypeError_throwNew, 5)                                                     \
  V(FallThroughError_throwNew, 1)                                              \
  V(AbstractClassInstantiationError_throwNew, 2)                               \
  V(Stacktrace_getFullStacktrace, 1)                                           \
  V(Stacktrace_getStacktrace, 1)                                               \
  V(Stacktrace_setupFullStacktrace, 1)                                         \
  V(Stopwatch_now, 0)                                                          \
  V(Stopwatch_frequency, 0)                                                    \
  V(TypedData_Int8Array_new, 1)                                                \
  V(TypedData_Uint8Array_new, 1)                                               \
  V(TypedData_Uint8ClampedArray_new, 1)                                        \
  V(TypedData_Int16Array_new, 1)                                               \
  V(TypedData_Uint16Array_new, 1)                                              \
  V(TypedData_Int32Array_new, 1)                                               \
  V(TypedData_Uint32Array_new, 1)                                              \
  V(TypedData_Int64Array_new, 1)                                               \
  V(TypedData_Uint64Array_new, 1)                                              \
  V(TypedData_Float32Array_new, 1)                                             \
  V(TypedData_Float64Array_new, 1)                                             \
  V(TypedData_Float32x4Array_new, 1)                                           \
  V(TypedData_Int32x4Array_new, 1)                                            \
  V(ExternalTypedData_Int8Array_new, 1)                                        \
  V(ExternalTypedData_Uint8Array_new, 1)                                       \
  V(ExternalTypedData_Uint8ClampedArray_new, 1)                                \
  V(ExternalTypedData_Int16Array_new, 1)                                       \
  V(ExternalTypedData_Uint16Array_new, 1)                                      \
  V(ExternalTypedData_Int32Array_new, 1)                                       \
  V(ExternalTypedData_Uint32Array_new, 1)                                      \
  V(ExternalTypedData_Int64Array_new, 1)                                       \
  V(ExternalTypedData_Uint64Array_new, 1)                                      \
  V(ExternalTypedData_Float32Array_new, 1)                                     \
  V(ExternalTypedData_Float64Array_new, 1)                                     \
  V(ExternalTypedData_Float32x4Array_new, 1)                                   \
  V(ExternalTypedData_Int32x4Array_new, 1)                                    \
  V(TypedData_length, 1)                                                       \
  V(TypedData_setRange, 5)                                                     \
  V(TypedData_GetInt8, 2)                                                      \
  V(TypedData_SetInt8, 3)                                                      \
  V(TypedData_GetUint8, 2)                                                     \
  V(TypedData_SetUint8, 3)                                                     \
  V(TypedData_GetInt16, 2)                                                     \
  V(TypedData_SetInt16, 3)                                                     \
  V(TypedData_GetUint16, 2)                                                    \
  V(TypedData_SetUint16, 3)                                                    \
  V(TypedData_GetInt32, 2)                                                     \
  V(TypedData_SetInt32, 3)                                                     \
  V(TypedData_GetUint32, 2)                                                    \
  V(TypedData_SetUint32, 3)                                                    \
  V(TypedData_GetInt64, 2)                                                     \
  V(TypedData_SetInt64, 3)                                                     \
  V(TypedData_GetUint64, 2)                                                    \
  V(TypedData_SetUint64, 3)                                                    \
  V(TypedData_GetFloat32, 2)                                                   \
  V(TypedData_SetFloat32, 3)                                                   \
  V(TypedData_GetFloat64, 2)                                                   \
  V(TypedData_SetFloat64, 3)                                                   \
  V(TypedData_GetFloat32x4, 2)                                                 \
  V(TypedData_SetFloat32x4, 3)                                                 \
  V(TypedData_GetInt32x4, 2)                                                  \
  V(TypedData_SetInt32x4, 3)                                                  \
  V(ByteData_ToEndianInt16, 2)                                                 \
  V(ByteData_ToEndianUint16, 2)                                                \
  V(ByteData_ToEndianInt32, 2)                                                 \
  V(ByteData_ToEndianUint32, 2)                                                \
  V(ByteData_ToEndianInt64, 2)                                                 \
  V(ByteData_ToEndianUint64, 2)                                                \
  V(ByteData_ToEndianFloat32, 2)                                               \
  V(ByteData_ToEndianFloat64, 2)                                               \
  V(Float32x4_fromDoubles, 5)                                                  \
  V(Float32x4_splat, 2)                                                        \
  V(Float32x4_fromInt32x4Bits, 2)                                             \
  V(Float32x4_zero, 1)                                                         \
  V(Float32x4_add, 2)                                                          \
  V(Float32x4_negate, 1)                                                       \
  V(Float32x4_sub, 2)                                                          \
  V(Float32x4_mul, 2)                                                          \
  V(Float32x4_div, 2)                                                          \
  V(Float32x4_cmplt, 2)                                                        \
  V(Float32x4_cmplte, 2)                                                       \
  V(Float32x4_cmpgt, 2)                                                        \
  V(Float32x4_cmpgte, 2)                                                       \
  V(Float32x4_cmpequal, 2)                                                     \
  V(Float32x4_cmpnequal, 2)                                                    \
  V(Float32x4_scale, 2)                                                        \
  V(Float32x4_abs, 1)                                                          \
  V(Float32x4_clamp, 3)                                                        \
  V(Float32x4_getX, 1)                                                         \
  V(Float32x4_getY, 1)                                                         \
  V(Float32x4_getZ, 1)                                                         \
  V(Float32x4_getW, 1)                                                         \
  V(Float32x4_getSignMask, 1)                                                  \
  V(Float32x4_shuffle, 2)                                                      \
  V(Float32x4_shuffleMix, 3)                                                   \
  V(Float32x4_setX, 2)                                                         \
  V(Float32x4_setY, 2)                                                         \
  V(Float32x4_setZ, 2)                                                         \
  V(Float32x4_setW, 2)                                                         \
  V(Float32x4_min, 2)                                                          \
  V(Float32x4_max, 2)                                                          \
  V(Float32x4_sqrt, 1)                                                         \
  V(Float32x4_reciprocal, 1)                                                   \
  V(Float32x4_reciprocalSqrt, 1)                                               \
  V(Int32x4_fromInts, 5)                                                      \
  V(Int32x4_fromBools, 5)                                                     \
  V(Int32x4_fromFloat32x4Bits, 2)                                             \
  V(Int32x4_or, 2)                                                            \
  V(Int32x4_and, 2)                                                           \
  V(Int32x4_xor, 2)                                                           \
  V(Int32x4_add, 2)                                                           \
  V(Int32x4_sub, 2)                                                           \
  V(Int32x4_getX, 1)                                                          \
  V(Int32x4_getY, 1)                                                          \
  V(Int32x4_getZ, 1)                                                          \
  V(Int32x4_getW, 1)                                                          \
  V(Int32x4_setX, 2)                                                          \
  V(Int32x4_setY, 2)                                                          \
  V(Int32x4_setZ, 2)                                                          \
  V(Int32x4_setW, 2)                                                          \
  V(Int32x4_getSignMask, 1)                                                   \
  V(Int32x4_shuffle, 2)                                                       \
  V(Int32x4_shuffleMix, 3)                                                    \
  V(Int32x4_getFlagX, 1)                                                      \
  V(Int32x4_getFlagY, 1)                                                      \
  V(Int32x4_getFlagZ, 1)                                                      \
  V(Int32x4_getFlagW, 1)                                                      \
  V(Int32x4_setFlagX, 2)                                                      \
  V(Int32x4_setFlagY, 2)                                                      \
  V(Int32x4_setFlagZ, 2)                                                      \
  V(Int32x4_setFlagW, 2)                                                      \
  V(Int32x4_select, 3)                                                        \
  V(Isolate_mainPort, 0)                                                       \
  V(Isolate_spawnFunction, 1)                                                  \
  V(Isolate_spawnUri, 1)                                                       \
  V(Mirrors_isLocalPort, 1)                                                    \
  V(Mirrors_makeLocalClassMirror, 1)                                           \
  V(Mirrors_makeLocalTypeMirror, 1)                                            \
  V(Mirrors_makeLocalMirrorSystem, 0)                                          \
  V(Mirrors_mangleName, 2)                                                     \
  V(Mirrors_unmangleName, 1)                                                   \
  V(MirrorReference_equals, 2)                                                 \
  V(InstanceMirror_invoke, 5)                                                  \
  V(InstanceMirror_invokeGetter, 3)                                            \
  V(InstanceMirror_invokeSetter, 4)                                            \
  V(InstanceMirror_computeType, 1)                                             \
  V(ClosureMirror_find_in_context, 2)                                          \
  V(ClosureMirror_function, 1)                                                 \
  V(ClosureMirror_apply, 2)                                                    \
  V(ClassMirror_library, 1)                                                    \
  V(ClassMirror_supertype, 1)                                                  \
  V(ClassMirror_supertype_instantiated, 1)                                     \
  V(ClassMirror_interfaces, 1)                                                 \
  V(ClassMirror_interfaces_instantiated, 1)                                    \
  V(ClassMirror_mixin, 1)                                                      \
  V(ClassMirror_mixin_instantiated, 2)                                         \
  V(ClassMirror_members, 2)                                                    \
  V(ClassMirror_constructors, 2)                                               \
  V(LibraryMirror_members, 2)                                                  \
  V(ClassMirror_invoke, 5)                                                     \
  V(ClassMirror_invokeGetter, 3)                                               \
  V(ClassMirror_invokeSetter, 4)                                               \
  V(ClassMirror_invokeConstructor, 5)                                          \
  V(ClassMirror_type_variables, 1)                                             \
  V(ClassMirror_type_arguments, 1)                                             \
  V(LibraryMirror_invoke, 5)                                                   \
  V(LibraryMirror_invokeGetter, 3)                                             \
  V(LibraryMirror_invokeSetter, 4)                                             \
  V(TypeVariableMirror_owner, 1)                                               \
  V(TypeVariableMirror_upper_bound, 1)                                         \
  V(TypeVariableMirror_instantiate_from, 2)                                    \
  V(DeclarationMirror_metadata, 1)                                             \
  V(FunctionTypeMirror_call_method, 2)                                         \
  V(FunctionTypeMirror_parameters, 2)                                          \
  V(FunctionTypeMirror_return_type, 1)                                         \
  V(MethodMirror_owner, 1)                                                     \
  V(MethodMirror_parameters, 2)                                                \
  V(MethodMirror_return_type, 1)                                               \
  V(MethodMirror_source, 1)                                                    \
  V(ParameterMirror_type, 2)                                                   \
  V(TypedefMirror_referent, 1)                                                 \
  V(TypedefMirror_instantiate_from, 2)                                         \
  V(TypedefMirror_declaration, 1)                                              \
  V(VariableMirror_type, 1)                                                    \
  V(GrowableList_allocate, 2)                                                  \
  V(GrowableList_getIndexed, 2)                                                \
  V(GrowableList_setIndexed, 3)                                                \
  V(GrowableList_getLength, 1)                                                 \
  V(GrowableList_getCapacity, 1)                                               \
  V(GrowableList_setLength, 2)                                                 \
  V(GrowableList_setData, 2)                                                   \
  V(WeakProperty_new, 2)                                                       \
  V(WeakProperty_getKey, 1)                                                    \
  V(WeakProperty_getValue, 1)                                                  \
  V(WeakProperty_setValue, 2)                                                  \
  V(Uri_isWindowsPlatform, 0)                                                  \

class BootstrapNatives : public AllStatic {
 public:
  static Dart_NativeFunction Lookup(Dart_Handle name, int argument_count);

#define DECLARE_BOOTSTRAP_NATIVE(name, ignored)                                \
  static void DN_##name(Dart_NativeArguments args);

  BOOTSTRAP_NATIVE_LIST(DECLARE_BOOTSTRAP_NATIVE)

#undef DECLARE_BOOTSTRAP_NATIVE
};

}  // namespace dart

#endif  // VM_BOOTSTRAP_NATIVES_H_
