Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(106)

Side by Side Diff: src/factory.cc

Issue 1035523005: Serializer: ensure unique script ids when deserializing. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix test Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/heap/heap.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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/factory.h" 5 #include "src/factory.h"
6 6
7 #include "src/allocation-site-scopes.h" 7 #include "src/allocation-site-scopes.h"
8 #include "src/base/bits.h" 8 #include "src/base/bits.h"
9 #include "src/conversions.h" 9 #include "src/conversions.h"
10 #include "src/isolate-inl.h" 10 #include "src/isolate-inl.h"
(...skipping 807 matching lines...) Expand 10 before | Expand all | Expand 10 after
818 Handle<ExecutableAccessorInfo> Factory::NewExecutableAccessorInfo() { 818 Handle<ExecutableAccessorInfo> Factory::NewExecutableAccessorInfo() {
819 Handle<ExecutableAccessorInfo> info = 819 Handle<ExecutableAccessorInfo> info =
820 Handle<ExecutableAccessorInfo>::cast( 820 Handle<ExecutableAccessorInfo>::cast(
821 NewStruct(EXECUTABLE_ACCESSOR_INFO_TYPE)); 821 NewStruct(EXECUTABLE_ACCESSOR_INFO_TYPE));
822 info->set_flag(0); // Must clear the flag, it was initialized as undefined. 822 info->set_flag(0); // Must clear the flag, it was initialized as undefined.
823 return info; 823 return info;
824 } 824 }
825 825
826 826
827 Handle<Script> Factory::NewScript(Handle<String> source) { 827 Handle<Script> Factory::NewScript(Handle<String> source) {
828 // Generate id for this script. 828 // Create and initialize script object.
829 Heap* heap = isolate()->heap(); 829 Heap* heap = isolate()->heap();
830 int id = heap->last_script_id()->value() + 1;
831 if (!Smi::IsValid(id) || id < 0) id = 1;
832 heap->set_last_script_id(Smi::FromInt(id));
833
834 // Create and initialize script object.
835 Handle<Script> script = Handle<Script>::cast(NewStruct(SCRIPT_TYPE)); 830 Handle<Script> script = Handle<Script>::cast(NewStruct(SCRIPT_TYPE));
836 script->set_source(*source); 831 script->set_source(*source);
837 script->set_name(heap->undefined_value()); 832 script->set_name(heap->undefined_value());
838 script->set_id(Smi::FromInt(id)); 833 script->set_id(isolate()->heap()->NextScriptId());
839 script->set_line_offset(Smi::FromInt(0)); 834 script->set_line_offset(Smi::FromInt(0));
840 script->set_column_offset(Smi::FromInt(0)); 835 script->set_column_offset(Smi::FromInt(0));
841 script->set_context_data(heap->undefined_value()); 836 script->set_context_data(heap->undefined_value());
842 script->set_type(Smi::FromInt(Script::TYPE_NORMAL)); 837 script->set_type(Smi::FromInt(Script::TYPE_NORMAL));
843 script->set_wrapper(heap->undefined_value()); 838 script->set_wrapper(heap->undefined_value());
844 script->set_line_ends(heap->undefined_value()); 839 script->set_line_ends(heap->undefined_value());
845 script->set_eval_from_shared(heap->undefined_value()); 840 script->set_eval_from_shared(heap->undefined_value());
846 script->set_eval_from_instructions_offset(Smi::FromInt(0)); 841 script->set_eval_from_instructions_offset(Smi::FromInt(0));
847 script->set_flags(Smi::FromInt(0)); 842 script->set_flags(Smi::FromInt(0));
848 843
(...skipping 1472 matching lines...) Expand 10 before | Expand all | Expand 10 after
2321 return Handle<Object>::null(); 2316 return Handle<Object>::null();
2322 } 2317 }
2323 2318
2324 2319
2325 Handle<Object> Factory::ToBoolean(bool value) { 2320 Handle<Object> Factory::ToBoolean(bool value) {
2326 return value ? true_value() : false_value(); 2321 return value ? true_value() : false_value();
2327 } 2322 }
2328 2323
2329 2324
2330 } } // namespace v8::internal 2325 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | src/heap/heap.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698