| OLD | NEW | 
|      1 // Copyright 2013 the V8 project authors. All rights reserved. |      1 // Copyright 2013 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 <sstream> |      5 #include <sstream> | 
|      6  |      6  | 
|      7 #include "src/v8.h" |      7 #include "src/v8.h" | 
|      8  |      8  | 
|      9 #include "src/accessors.h" |      9 #include "src/accessors.h" | 
|     10 #include "src/allocation-site-scopes.h" |     10 #include "src/allocation-site-scopes.h" | 
| (...skipping 11015 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  11026 #define CASE(name) case name: return #name; |  11026 #define CASE(name) case name: return #name; | 
|  11027     CODE_KIND_LIST(CASE) |  11027     CODE_KIND_LIST(CASE) | 
|  11028 #undef CASE |  11028 #undef CASE | 
|  11029     case NUMBER_OF_KINDS: break; |  11029     case NUMBER_OF_KINDS: break; | 
|  11030   } |  11030   } | 
|  11031   UNREACHABLE(); |  11031   UNREACHABLE(); | 
|  11032   return NULL; |  11032   return NULL; | 
|  11033 } |  11033 } | 
|  11034  |  11034  | 
|  11035  |  11035  | 
 |  11036 Handle<WeakCell> Code::WeakCellFor(Handle<Code> code) { | 
 |  11037   DCHECK(code->kind() == OPTIMIZED_FUNCTION); | 
 |  11038   WeakCell* raw_cell = code->CachedWeakCell(); | 
 |  11039   if (raw_cell != NULL) return Handle<WeakCell>(raw_cell); | 
 |  11040   Handle<WeakCell> cell = code->GetIsolate()->factory()->NewWeakCell(code); | 
 |  11041   DeoptimizationInputData::cast(code->deoptimization_data()) | 
 |  11042       ->SetWeakCellCache(*cell); | 
 |  11043   return cell; | 
 |  11044 } | 
 |  11045  | 
 |  11046  | 
 |  11047 WeakCell* Code::CachedWeakCell() { | 
 |  11048   DCHECK(kind() == OPTIMIZED_FUNCTION); | 
 |  11049   Object* weak_cell_cache = | 
 |  11050       DeoptimizationInputData::cast(deoptimization_data())->WeakCellCache(); | 
 |  11051   if (weak_cell_cache->IsWeakCell()) { | 
 |  11052     DCHECK(this == WeakCell::cast(weak_cell_cache)->value()); | 
 |  11053     return WeakCell::cast(weak_cell_cache); | 
 |  11054   } | 
 |  11055   return NULL; | 
 |  11056 } | 
 |  11057  | 
 |  11058  | 
|  11036 #ifdef ENABLE_DISASSEMBLER |  11059 #ifdef ENABLE_DISASSEMBLER | 
|  11037  |  11060  | 
|  11038 void DeoptimizationInputData::DeoptimizationInputDataPrint( |  11061 void DeoptimizationInputData::DeoptimizationInputDataPrint( | 
|  11039     std::ostream& os) {  // NOLINT |  11062     std::ostream& os) {  // NOLINT | 
|  11040   disasm::NameConverter converter; |  11063   disasm::NameConverter converter; | 
|  11041   int deopt_count = DeoptCount(); |  11064   int deopt_count = DeoptCount(); | 
|  11042   os << "Deoptimization Input Data (deopt points = " << deopt_count << ")\n"; |  11065   os << "Deoptimization Input Data (deopt points = " << deopt_count << ")\n"; | 
|  11043   if (0 != deopt_count) { |  11066   if (0 != deopt_count) { | 
|  11044     os << " index  ast id    argc     pc"; |  11067     os << " index  ast id    argc     pc"; | 
|  11045     if (FLAG_print_code_verbose) os << "  commands"; |  11068     if (FLAG_print_code_verbose) os << "  commands"; | 
| (...skipping 5792 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  16838   Handle<DependentCode> codes = |  16861   Handle<DependentCode> codes = | 
|  16839       DependentCode::Insert(handle(cell->dependent_code(), info->isolate()), |  16862       DependentCode::Insert(handle(cell->dependent_code(), info->isolate()), | 
|  16840                             DependentCode::kPropertyCellChangedGroup, |  16863                             DependentCode::kPropertyCellChangedGroup, | 
|  16841                             info->object_wrapper()); |  16864                             info->object_wrapper()); | 
|  16842   if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); |  16865   if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); | 
|  16843   info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( |  16866   info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( | 
|  16844       cell, info->zone()); |  16867       cell, info->zone()); | 
|  16845 } |  16868 } | 
|  16846  |  16869  | 
|  16847 } }  // namespace v8::internal |  16870 } }  // namespace v8::internal | 
| OLD | NEW |