| Index: src/func-name-inferrer.h
|
| diff --git a/src/func-name-inferrer.h b/src/func-name-inferrer.h
|
| index f0fdbd22e021bd281e7e0b2f01ae8985c3574917..5b70ba359f79064019d5541e066ffba31beadf29 100644
|
| --- a/src/func-name-inferrer.h
|
| +++ b/src/func-name-inferrer.h
|
| @@ -6,13 +6,13 @@
|
| #define V8_FUNC_NAME_INFERRER_H_
|
|
|
| #include "handles.h"
|
| +#include "parser-symbol-table.h"
|
| #include "zone.h"
|
|
|
| namespace v8 {
|
| namespace internal {
|
|
|
| class FunctionLiteral;
|
| -class Isolate;
|
|
|
| // FuncNameInferrer is a stateful class that is used to perform name
|
| // inference for anonymous functions during static analysis of source code.
|
| @@ -26,13 +26,13 @@ class Isolate;
|
| // a name.
|
| class FuncNameInferrer : public ZoneObject {
|
| public:
|
| - FuncNameInferrer(Isolate* isolate, Zone* zone);
|
| + FuncNameInferrer(ParserSymbolTable* symbol_table, Zone* zone);
|
|
|
| // Returns whether we have entered name collection state.
|
| bool IsOpen() const { return !entries_stack_.is_empty(); }
|
|
|
| // Pushes an enclosing the name of enclosing function onto names stack.
|
| - void PushEnclosingName(Handle<String> name);
|
| + void PushEnclosingName(ParserSymbolTable::Symbol* name);
|
|
|
| // Enters name collection state.
|
| void Enter() {
|
| @@ -40,9 +40,9 @@ class FuncNameInferrer : public ZoneObject {
|
| }
|
|
|
| // Pushes an encountered name onto names stack when in collection state.
|
| - void PushLiteralName(Handle<String> name);
|
| + void PushLiteralName(ParserSymbolTable::Symbol* name);
|
|
|
| - void PushVariableName(Handle<String> name);
|
| + void PushVariableName(ParserSymbolTable::Symbol* name);
|
|
|
| // Adds a function to infer name for.
|
| void AddFunction(FunctionLiteral* func_to_infer) {
|
| @@ -80,24 +80,21 @@ class FuncNameInferrer : public ZoneObject {
|
| kVariableName
|
| };
|
| struct Name {
|
| - Name(Handle<String> name, NameType type) : name(name), type(type) { }
|
| - Handle<String> name;
|
| + Name(ParserSymbolTable::Symbol* name, NameType type)
|
| + : name(name), type(type) {}
|
| + ParserSymbolTable::Symbol* name;
|
| NameType type;
|
| };
|
|
|
| - Isolate* isolate() { return isolate_; }
|
| Zone* zone() const { return zone_; }
|
|
|
| // Constructs a full name in dotted notation from gathered names.
|
| - Handle<String> MakeNameFromStack();
|
| -
|
| - // A helper function for MakeNameFromStack.
|
| - Handle<String> MakeNameFromStackHelper(int pos, Handle<String> prev);
|
| + ParserSymbolTable::Symbol* MakeNameFromStack();
|
|
|
| // Performs name inferring for added functions.
|
| void InferFunctionsNames();
|
|
|
| - Isolate* isolate_;
|
| + ParserSymbolTable* symbol_table_;
|
| ZoneList<int> entries_stack_;
|
| ZoneList<Name> names_stack_;
|
| ZoneList<FunctionLiteral*> funcs_to_infer_;
|
|
|