// Copyright 2016 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef SRC_ASMJS_ASM_TYPER_H_ #define SRC_ASMJS_ASM_TYPER_H_ #include #include #include #include #include "src/allocation.h" #include "src/asmjs/asm-types.h" #include "src/ast/ast-type-bounds.h" #include "src/ast/ast-types.h" #include "src/ast/ast.h" #include "src/effects.h" #include "src/messages.h" #include "src/type-info.h" #include "src/zone/zone-containers.h" #include "src/zone/zone.h" namespace v8 { namespace internal { namespace wasm { class AsmType; class AsmTyperHarnessBuilder; class SourceLayoutTracker; class AsmTyper final { public: enum StandardMember { kHeap = -4, kFFI = -3, kStdlib = -2, kModule = -1, kNone = 0, kInfinity, kNaN, kMathAcos, kMathAsin, kMathAtan, kMathCos, kMathSin, kMathTan, kMathExp, kMathLog, kMathCeil, kMathFloor, kMathSqrt, kMathAbs, kMathClz32, kMathMin, kMathMax, kMathAtan2, kMathPow, kMathImul, kMathFround, kMathE, kMathLN10, kMathLN2, kMathLOG2E, kMathLOG10E, kMathPI, kMathSQRT1_2, kMathSQRT2, }; ~AsmTyper() = default; AsmTyper(Isolate* isolate, Zone* zone, Handle