V8 Project
typer.h
Go to the documentation of this file.
1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef V8_COMPILER_TYPER_H_
6 #define V8_COMPILER_TYPER_H_
7 
8 #include "src/v8.h"
9 
10 #include "src/compiler/graph.h"
11 #include "src/compiler/opcodes.h"
12 #include "src/types.h"
13 
14 namespace v8 {
15 namespace internal {
16 namespace compiler {
17 
18 class Typer {
19  public:
20  explicit Typer(Zone* zone);
21 
22  void Init(Node* node);
23  void Run(Graph* graph, MaybeHandle<Context> context);
24  void Narrow(Graph* graph, Node* node, MaybeHandle<Context> context);
25  void Widen(Graph* graph, Node* node, MaybeHandle<Context> context);
26 
27  void DecorateGraph(Graph* graph);
28 
29  Zone* zone() { return zone_; }
30  Isolate* isolate() { return zone_->isolate(); }
31 
32  private:
33  class Visitor;
34  class RunVisitor;
35  class NarrowVisitor;
36  class WidenVisitor;
37 
54 };
55 }
56 }
57 } // namespace v8::internal::compiler
58 
59 #endif // V8_COMPILER_TYPER_H_
Isolate * isolate() const
Definition: zone.h:68
void Init(Node *node)
Definition: typer.cc:229
void Widen(Graph *graph, Node *node, MaybeHandle< Context > context)
Definition: typer.cc:223
void Narrow(Graph *graph, Node *node, MaybeHandle< Context > context)
Definition: typer.cc:217
void Run(Graph *graph, MaybeHandle< Context > context)
Definition: typer.cc:207
void DecorateGraph(Graph *graph)
Definition: typer.cc:908
Debugger support for the V8 JavaScript engine.
Definition: accessors.cc:20