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

Side by Side Diff: src/factory.cc

Issue 2918001: Move serialized scope info from Code object to SharedFunctionInfo. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « src/factory.h ('k') | src/frames.cc » ('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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 Handle<Code> code) { 534 Handle<Code> code) {
535 Handle<JSFunction> function = NewFunctionWithoutPrototype(name); 535 Handle<JSFunction> function = NewFunctionWithoutPrototype(name);
536 function->set_code(*code); 536 function->set_code(*code);
537 ASSERT(!function->has_initial_map()); 537 ASSERT(!function->has_initial_map());
538 ASSERT(!function->has_prototype()); 538 ASSERT(!function->has_prototype());
539 return function; 539 return function;
540 } 540 }
541 541
542 542
543 Handle<Code> Factory::NewCode(const CodeDesc& desc, 543 Handle<Code> Factory::NewCode(const CodeDesc& desc,
544 ZoneScopeInfo* sinfo,
545 Code::Flags flags, 544 Code::Flags flags,
546 Handle<Object> self_ref) { 545 Handle<Object> self_ref) {
547 CALL_HEAP_FUNCTION(Heap::CreateCode(desc, sinfo, flags, self_ref), Code); 546 CALL_HEAP_FUNCTION(Heap::CreateCode(desc, flags, self_ref), Code);
548 } 547 }
549 548
550 549
551 Handle<Code> Factory::CopyCode(Handle<Code> code) { 550 Handle<Code> Factory::CopyCode(Handle<Code> code) {
552 CALL_HEAP_FUNCTION(Heap::CopyCode(*code), Code); 551 CALL_HEAP_FUNCTION(Heap::CopyCode(*code), Code);
553 } 552 }
554 553
555 554
556 Handle<Code> Factory::CopyCode(Handle<Code> code, Vector<byte> reloc_info) { 555 Handle<Code> Factory::CopyCode(Handle<Code> code, Vector<byte> reloc_info) {
557 CALL_HEAP_FUNCTION(Heap::CopyCode(*code, reloc_info), Code); 556 CALL_HEAP_FUNCTION(Heap::CopyCode(*code, reloc_info), Code);
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
673 Handle<JSArray> Factory::NewJSArrayWithElements(Handle<FixedArray> elements, 672 Handle<JSArray> Factory::NewJSArrayWithElements(Handle<FixedArray> elements,
674 PretenureFlag pretenure) { 673 PretenureFlag pretenure) {
675 Handle<JSArray> result = 674 Handle<JSArray> result =
676 Handle<JSArray>::cast(NewJSObject(Top::array_function(), pretenure)); 675 Handle<JSArray>::cast(NewJSObject(Top::array_function(), pretenure));
677 result->SetContent(*elements); 676 result->SetContent(*elements);
678 return result; 677 return result;
679 } 678 }
680 679
681 680
682 Handle<SharedFunctionInfo> Factory::NewSharedFunctionInfo( 681 Handle<SharedFunctionInfo> Factory::NewSharedFunctionInfo(
683 Handle<String> name, int number_of_literals, Handle<Code> code) { 682 Handle<String> name,
683 int number_of_literals,
684 Handle<Code> code,
685 Handle<Object> scope_info) {
684 Handle<SharedFunctionInfo> shared = NewSharedFunctionInfo(name); 686 Handle<SharedFunctionInfo> shared = NewSharedFunctionInfo(name);
685 shared->set_code(*code); 687 shared->set_code(*code);
688 shared->set_scope_info(*scope_info);
686 int literals_array_size = number_of_literals; 689 int literals_array_size = number_of_literals;
687 // If the function contains object, regexp or array literals, 690 // If the function contains object, regexp or array literals,
688 // allocate extra space for a literals array prefix containing the 691 // allocate extra space for a literals array prefix containing the
689 // context. 692 // context.
690 if (number_of_literals > 0) { 693 if (number_of_literals > 0) {
691 literals_array_size += JSFunction::kLiteralsPrefixSize; 694 literals_array_size += JSFunction::kLiteralsPrefixSize;
692 } 695 }
693 shared->set_num_literals(literals_array_size); 696 shared->set_num_literals(literals_array_size);
694 return shared; 697 return shared;
695 } 698 }
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
989 Execution::ConfigureInstance(instance, 992 Execution::ConfigureInstance(instance,
990 instance_template, 993 instance_template,
991 pending_exception); 994 pending_exception);
992 } else { 995 } else {
993 *pending_exception = false; 996 *pending_exception = false;
994 } 997 }
995 } 998 }
996 999
997 1000
998 } } // namespace v8::internal 1001 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/factory.h ('k') | src/frames.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698