| OLD | NEW | 
|     1 // Copyright 2012 the V8 project authors. All rights reserved. |     1 // Copyright 2012 the V8 project authors. All rights reserved. | 
|     2 // Use of this source code is governed by a BSD-style license that can be |     2 // Use of this source code is governed by a BSD-style license that can be | 
|     3 // found in the LICENSE file. |     3 // found in the LICENSE file. | 
|     4  |     4  | 
|     5 #include "src/compiler.h" |     5 #include "src/compiler.h" | 
|     6  |     6  | 
|     7 #include <algorithm> |     7 #include <algorithm> | 
|     8  |     8  | 
|     9 #include "src/ast-numbering.h" |     9 #include "src/ast-numbering.h" | 
|    10 #include "src/bootstrapper.h" |    10 #include "src/bootstrapper.h" | 
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   250   // type feedback vector. |   250   // type feedback vector. | 
|   251   CHECK(!feedback_vector_->SpecDiffersFrom(literal()->feedback_vector_spec())); |   251   CHECK(!feedback_vector_->SpecDiffersFrom(literal()->feedback_vector_spec())); | 
|   252 } |   252 } | 
|   253  |   253  | 
|   254  |   254  | 
|   255 bool CompilationInfo::has_simple_parameters() { |   255 bool CompilationInfo::has_simple_parameters() { | 
|   256   return scope()->has_simple_parameters(); |   256   return scope()->has_simple_parameters(); | 
|   257 } |   257 } | 
|   258  |   258  | 
|   259  |   259  | 
|   260 bool CompilationInfo::MayUseThis() const { |  | 
|   261   return scope()->has_this_declaration() && scope()->receiver()->is_used(); |  | 
|   262 } |  | 
|   263  |  | 
|   264  |  | 
|   265 int CompilationInfo::TraceInlinedFunction(Handle<SharedFunctionInfo> shared, |   260 int CompilationInfo::TraceInlinedFunction(Handle<SharedFunctionInfo> shared, | 
|   266                                           SourcePosition position, |   261                                           SourcePosition position, | 
|   267                                           int parent_id) { |   262                                           int parent_id) { | 
|   268   DCHECK(track_positions_); |   263   DCHECK(track_positions_); | 
|   269  |   264  | 
|   270   int inline_id = static_cast<int>(inlined_function_infos_.size()); |   265   int inline_id = static_cast<int>(inlined_function_infos_.size()); | 
|   271   InlinedFunctionInfo info(parent_id, position, UnboundScript::kNoScriptId, |   266   InlinedFunctionInfo info(parent_id, position, UnboundScript::kNoScriptId, | 
|   272       shared->start_position()); |   267       shared->start_position()); | 
|   273   if (!shared->script()->IsUndefined()) { |   268   if (!shared->script()->IsUndefined()) { | 
|   274     Handle<Script> script(Script::cast(shared->script())); |   269     Handle<Script> script(Script::cast(shared->script())); | 
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   321     base::SmartArrayPointer<char> name(new char[len]); |   316     base::SmartArrayPointer<char> name(new char[len]); | 
|   322     memcpy(name.get(), code_stub_debug_name_, len); |   317     memcpy(name.get(), code_stub_debug_name_, len); | 
|   323     return name; |   318     return name; | 
|   324   } else { |   319   } else { | 
|   325     AllowHandleDereference allow_deref; |   320     AllowHandleDereference allow_deref; | 
|   326     return literal()->debug_name()->ToCString(); |   321     return literal()->debug_name()->ToCString(); | 
|   327   } |   322   } | 
|   328 } |   323 } | 
|   329  |   324  | 
|   330  |   325  | 
 |   326 bool CompilationInfo::MustReplaceUndefinedReceiverWithGlobalProxy() { | 
 |   327   return is_sloppy(language_mode()) && !is_native() && | 
 |   328          scope()->has_this_declaration() && scope()->receiver()->is_used(); | 
 |   329 } | 
 |   330  | 
 |   331  | 
|   331 class HOptimizedGraphBuilderWithPositions: public HOptimizedGraphBuilder { |   332 class HOptimizedGraphBuilderWithPositions: public HOptimizedGraphBuilder { | 
|   332  public: |   333  public: | 
|   333   explicit HOptimizedGraphBuilderWithPositions(CompilationInfo* info) |   334   explicit HOptimizedGraphBuilderWithPositions(CompilationInfo* info) | 
|   334       : HOptimizedGraphBuilder(info) { |   335       : HOptimizedGraphBuilder(info) { | 
|   335   } |   336   } | 
|   336  |   337  | 
|   337 #define DEF_VISIT(type)                                      \ |   338 #define DEF_VISIT(type)                                      \ | 
|   338   void Visit##type(type* node) override {                    \ |   339   void Visit##type(type* node) override {                    \ | 
|   339     SourcePosition old_position = SourcePosition::Unknown(); \ |   340     SourcePosition old_position = SourcePosition::Unknown(); \ | 
|   340     if (node->position() != RelocInfo::kNoPosition) {        \ |   341     if (node->position() != RelocInfo::kNoPosition) {        \ | 
| (...skipping 1402 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1743   // character is in the FLAG_trace_phase command line parameter. |  1744   // character is in the FLAG_trace_phase command line parameter. | 
|  1744   AllowHandleDereference allow_deref; |  1745   AllowHandleDereference allow_deref; | 
|  1745   bool tracing_on = info()->IsStub() |  1746   bool tracing_on = info()->IsStub() | 
|  1746       ? FLAG_trace_hydrogen_stubs |  1747       ? FLAG_trace_hydrogen_stubs | 
|  1747       : (FLAG_trace_hydrogen && |  1748       : (FLAG_trace_hydrogen && | 
|  1748          info()->closure()->PassesFilter(FLAG_trace_hydrogen_filter)); |  1749          info()->closure()->PassesFilter(FLAG_trace_hydrogen_filter)); | 
|  1749   return (tracing_on && |  1750   return (tracing_on && | 
|  1750       base::OS::StrChr(const_cast<char*>(FLAG_trace_phase), name_[0]) != NULL); |  1751       base::OS::StrChr(const_cast<char*>(FLAG_trace_phase), name_[0]) != NULL); | 
|  1751 } |  1752 } | 
|  1752  |  1753  | 
|  1753  |  | 
|  1754 #if DEBUG |  1754 #if DEBUG | 
|  1755 void CompilationInfo::PrintAstForTesting() { |  1755 void CompilationInfo::PrintAstForTesting() { | 
|  1756   PrintF("--- Source from AST ---\n%s\n", |  1756   PrintF("--- Source from AST ---\n%s\n", | 
|  1757          PrettyPrinter(isolate(), zone()).PrintProgram(literal())); |  1757          PrettyPrinter(isolate(), zone()).PrintProgram(literal())); | 
|  1758 } |  1758 } | 
|  1759 #endif |  1759 #endif | 
|  1760 }  // namespace internal |  1760 }  // namespace internal | 
|  1761 }  // namespace v8 |  1761 }  // namespace v8 | 
| OLD | NEW |