Chromium Code Reviews| 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 "src/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
| 8 #include "src/allocation-site-scopes.h" | 8 #include "src/allocation-site-scopes.h" |
| 9 #include "src/api.h" | 9 #include "src/api.h" |
| 10 #include "src/arguments.h" | 10 #include "src/arguments.h" |
| (...skipping 9281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 9292 PrintF(" ** Queueing "); | 9292 PrintF(" ** Queueing "); |
| 9293 PrintName(); | 9293 PrintName(); |
| 9294 PrintF(" for concurrent recompilation.\n"); | 9294 PrintF(" for concurrent recompilation.\n"); |
| 9295 } | 9295 } |
| 9296 set_code_no_write_barrier( | 9296 set_code_no_write_barrier( |
| 9297 GetIsolate()->builtins()->builtin(Builtins::kInOptimizationQueue)); | 9297 GetIsolate()->builtins()->builtin(Builtins::kInOptimizationQueue)); |
| 9298 // No write barrier required, since the builtin is part of the root set. | 9298 // No write barrier required, since the builtin is part of the root set. |
| 9299 } | 9299 } |
| 9300 | 9300 |
| 9301 | 9301 |
| 9302 Handle<JSFunction> JSFunction::CloneClosure(Handle<JSFunction> function) { | |
| 9303 Isolate* isolate = function->GetIsolate(); | |
| 9304 Handle<Map> map(function->map()); | |
| 9305 Handle<SharedFunctionInfo> shared(function->shared()); | |
| 9306 Handle<Context> context(function->context()); | |
| 9307 Handle<JSFunction> clone = | |
| 9308 isolate->factory()->NewFunctionFromSharedFunctionInfo(shared, context); | |
| 9309 | |
| 9310 if (shared->bound()) { | |
| 9311 clone->set_function_bindings(function->function_bindings()); | |
| 9312 } | |
| 9313 | |
| 9314 // In typical case, __proto__ of ``function`` is the default Function | |
| 9315 // prototype, which means that SetPrototype below is a no-op. | |
|
Toon Verwaest
2014/08/21 11:32:28
Now this comment is a bit off
| |
| 9316 // In rare cases when that is not true, we mutate the clone's __proto__. | |
| 9317 Handle<Object> original_prototype(map->prototype(), isolate); | |
| 9318 if (*original_prototype != clone->map()->prototype()) { | |
| 9319 JSObject::SetPrototype(clone, original_prototype, false).Assert(); | |
| 9320 } | |
| 9321 | |
| 9322 return clone; | |
| 9323 } | |
| 9324 | |
| 9325 | |
| 9302 void SharedFunctionInfo::AddToOptimizedCodeMap( | 9326 void SharedFunctionInfo::AddToOptimizedCodeMap( |
| 9303 Handle<SharedFunctionInfo> shared, | 9327 Handle<SharedFunctionInfo> shared, |
| 9304 Handle<Context> native_context, | 9328 Handle<Context> native_context, |
| 9305 Handle<Code> code, | 9329 Handle<Code> code, |
| 9306 Handle<FixedArray> literals, | 9330 Handle<FixedArray> literals, |
| 9307 BailoutId osr_ast_id) { | 9331 BailoutId osr_ast_id) { |
| 9308 Isolate* isolate = shared->GetIsolate(); | 9332 Isolate* isolate = shared->GetIsolate(); |
| 9309 DCHECK(code->kind() == Code::OPTIMIZED_FUNCTION); | 9333 DCHECK(code->kind() == Code::OPTIMIZED_FUNCTION); |
| 9310 DCHECK(native_context->IsNativeContext()); | 9334 DCHECK(native_context->IsNativeContext()); |
| 9311 STATIC_ASSERT(kEntryLength == 4); | 9335 STATIC_ASSERT(kEntryLength == 4); |
| (...skipping 7250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 16562 #define ERROR_MESSAGES_TEXTS(C, T) T, | 16586 #define ERROR_MESSAGES_TEXTS(C, T) T, |
| 16563 static const char* error_messages_[] = { | 16587 static const char* error_messages_[] = { |
| 16564 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) | 16588 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) |
| 16565 }; | 16589 }; |
| 16566 #undef ERROR_MESSAGES_TEXTS | 16590 #undef ERROR_MESSAGES_TEXTS |
| 16567 return error_messages_[reason]; | 16591 return error_messages_[reason]; |
| 16568 } | 16592 } |
| 16569 | 16593 |
| 16570 | 16594 |
| 16571 } } // namespace v8::internal | 16595 } } // namespace v8::internal |
| OLD | NEW |