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 15336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15347 entry = table->FindInsertionEntry(key->Hash()); | 15347 entry = table->FindInsertionEntry(key->Hash()); |
15348 table->set(EntryToIndex(entry), *string); | 15348 table->set(EntryToIndex(entry), *string); |
15349 table->ElementAdded(); | 15349 table->ElementAdded(); |
15350 | 15350 |
15351 isolate->factory()->set_string_table(table); | 15351 isolate->factory()->set_string_table(table); |
15352 return Handle<String>::cast(string); | 15352 return Handle<String>::cast(string); |
15353 } | 15353 } |
15354 | 15354 |
15355 | 15355 |
15356 Handle<Object> CompilationCacheTable::Lookup(Handle<String> src, | 15356 Handle<Object> CompilationCacheTable::Lookup(Handle<String> src, |
15357 Handle<Context> context) { | 15357 Handle<Context> context, |
| 15358 LanguageMode language_mode) { |
15358 Isolate* isolate = GetIsolate(); | 15359 Isolate* isolate = GetIsolate(); |
15359 Handle<SharedFunctionInfo> shared(context->closure()->shared()); | 15360 Handle<SharedFunctionInfo> shared(context->closure()->shared()); |
15360 LanguageMode mode = construct_language_mode(FLAG_use_strict, FLAG_use_strong); | 15361 StringSharedKey key(src, shared, language_mode, RelocInfo::kNoPosition); |
15361 StringSharedKey key(src, shared, mode, RelocInfo::kNoPosition); | |
15362 int entry = FindEntry(&key); | 15362 int entry = FindEntry(&key); |
15363 if (entry == kNotFound) return isolate->factory()->undefined_value(); | 15363 if (entry == kNotFound) return isolate->factory()->undefined_value(); |
15364 int index = EntryToIndex(entry); | 15364 int index = EntryToIndex(entry); |
15365 if (!get(index)->IsFixedArray()) return isolate->factory()->undefined_value(); | 15365 if (!get(index)->IsFixedArray()) return isolate->factory()->undefined_value(); |
15366 return Handle<Object>(get(index + 1), isolate); | 15366 return Handle<Object>(get(index + 1), isolate); |
15367 } | 15367 } |
15368 | 15368 |
15369 | 15369 |
15370 Handle<Object> CompilationCacheTable::LookupEval( | 15370 Handle<Object> CompilationCacheTable::LookupEval( |
15371 Handle<String> src, Handle<SharedFunctionInfo> outer_info, | 15371 Handle<String> src, Handle<SharedFunctionInfo> outer_info, |
(...skipping 16 matching lines...) Expand all Loading... |
15388 DisallowHeapAllocation no_allocation; | 15388 DisallowHeapAllocation no_allocation; |
15389 RegExpKey key(src, flags); | 15389 RegExpKey key(src, flags); |
15390 int entry = FindEntry(&key); | 15390 int entry = FindEntry(&key); |
15391 if (entry == kNotFound) return isolate->factory()->undefined_value(); | 15391 if (entry == kNotFound) return isolate->factory()->undefined_value(); |
15392 return Handle<Object>(get(EntryToIndex(entry) + 1), isolate); | 15392 return Handle<Object>(get(EntryToIndex(entry) + 1), isolate); |
15393 } | 15393 } |
15394 | 15394 |
15395 | 15395 |
15396 Handle<CompilationCacheTable> CompilationCacheTable::Put( | 15396 Handle<CompilationCacheTable> CompilationCacheTable::Put( |
15397 Handle<CompilationCacheTable> cache, Handle<String> src, | 15397 Handle<CompilationCacheTable> cache, Handle<String> src, |
15398 Handle<Context> context, Handle<Object> value) { | 15398 Handle<Context> context, LanguageMode language_mode, Handle<Object> value) { |
15399 Isolate* isolate = cache->GetIsolate(); | 15399 Isolate* isolate = cache->GetIsolate(); |
15400 Handle<SharedFunctionInfo> shared(context->closure()->shared()); | 15400 Handle<SharedFunctionInfo> shared(context->closure()->shared()); |
15401 LanguageMode mode = construct_language_mode(FLAG_use_strict, FLAG_use_strong); | 15401 StringSharedKey key(src, shared, language_mode, RelocInfo::kNoPosition); |
15402 StringSharedKey key(src, shared, mode, RelocInfo::kNoPosition); | |
15403 { | 15402 { |
15404 Handle<Object> k = key.AsHandle(isolate); | 15403 Handle<Object> k = key.AsHandle(isolate); |
15405 DisallowHeapAllocation no_allocation_scope; | 15404 DisallowHeapAllocation no_allocation_scope; |
15406 int entry = cache->FindEntry(&key); | 15405 int entry = cache->FindEntry(&key); |
15407 if (entry != kNotFound) { | 15406 if (entry != kNotFound) { |
15408 cache->set(EntryToIndex(entry), *k); | 15407 cache->set(EntryToIndex(entry), *k); |
15409 cache->set(EntryToIndex(entry) + 1, *value); | 15408 cache->set(EntryToIndex(entry) + 1, *value); |
15410 return cache; | 15409 return cache; |
15411 } | 15410 } |
15412 } | 15411 } |
(...skipping 1595 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
17008 CompilationInfo* info) { | 17007 CompilationInfo* info) { |
17009 Handle<DependentCode> codes = DependentCode::InsertCompilationInfo( | 17008 Handle<DependentCode> codes = DependentCode::InsertCompilationInfo( |
17010 handle(cell->dependent_code(), info->isolate()), | 17009 handle(cell->dependent_code(), info->isolate()), |
17011 DependentCode::kPropertyCellChangedGroup, info->object_wrapper()); | 17010 DependentCode::kPropertyCellChangedGroup, info->object_wrapper()); |
17012 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); | 17011 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); |
17013 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( | 17012 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( |
17014 cell, info->zone()); | 17013 cell, info->zone()); |
17015 } | 17014 } |
17016 | 17015 |
17017 } } // namespace v8::internal | 17016 } } // namespace v8::internal |
OLD | NEW |