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

Side by Side Diff: src/heap.cc

Issue 7491097: Revert "Revert "Fix a bug in scope analysis."" (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 years, 4 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/compiler.cc ('k') | src/objects.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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 2381 matching lines...) Expand 10 before | Expand all | Expand 10 after
2392 { MaybeObject* maybe_result = Allocate(foreign_map(), space); 2392 { MaybeObject* maybe_result = Allocate(foreign_map(), space);
2393 if (!maybe_result->ToObject(&result)) return maybe_result; 2393 if (!maybe_result->ToObject(&result)) return maybe_result;
2394 } 2394 }
2395 2395
2396 Foreign::cast(result)->set_address(address); 2396 Foreign::cast(result)->set_address(address);
2397 return result; 2397 return result;
2398 } 2398 }
2399 2399
2400 2400
2401 MaybeObject* Heap::AllocateSharedFunctionInfo(Object* name) { 2401 MaybeObject* Heap::AllocateSharedFunctionInfo(Object* name) {
2402 Object* result; 2402 SharedFunctionInfo* share;
2403 { MaybeObject* maybe_result = 2403 MaybeObject* maybe = Allocate(shared_function_info_map(), OLD_POINTER_SPACE);
2404 Allocate(shared_function_info_map(), OLD_POINTER_SPACE); 2404 if (!maybe->To<SharedFunctionInfo>(&share)) return maybe;
2405 if (!maybe_result->ToObject(&result)) return maybe_result;
2406 }
2407 2405
2408 SharedFunctionInfo* share = SharedFunctionInfo::cast(result); 2406 // Set pointer fields.
2409 share->set_name(name); 2407 share->set_name(name);
2410 Code* illegal = isolate_->builtins()->builtin(Builtins::kIllegal); 2408 Code* illegal = isolate_->builtins()->builtin(Builtins::kIllegal);
2411 share->set_code(illegal); 2409 share->set_code(illegal);
2412 share->set_scope_info(SerializedScopeInfo::Empty()); 2410 share->set_scope_info(SerializedScopeInfo::Empty());
2413 Code* construct_stub = isolate_->builtins()->builtin( 2411 Code* construct_stub =
2414 Builtins::kJSConstructStubGeneric); 2412 isolate_->builtins()->builtin(Builtins::kJSConstructStubGeneric);
2415 share->set_construct_stub(construct_stub); 2413 share->set_construct_stub(construct_stub);
2416 share->set_expected_nof_properties(0);
2417 share->set_length(0);
2418 share->set_formal_parameter_count(0);
2419 share->set_instance_class_name(Object_symbol()); 2414 share->set_instance_class_name(Object_symbol());
2420 share->set_function_data(undefined_value()); 2415 share->set_function_data(undefined_value());
2421 share->set_script(undefined_value()); 2416 share->set_script(undefined_value());
2422 share->set_start_position_and_type(0);
2423 share->set_debug_info(undefined_value()); 2417 share->set_debug_info(undefined_value());
2424 share->set_inferred_name(empty_string()); 2418 share->set_inferred_name(empty_string());
2425 share->set_compiler_hints(0); 2419 share->set_initial_map(undefined_value());
2420 share->set_this_property_assignments(undefined_value());
2426 share->set_deopt_counter(Smi::FromInt(FLAG_deopt_every_n_times)); 2421 share->set_deopt_counter(Smi::FromInt(FLAG_deopt_every_n_times));
2427 share->set_initial_map(undefined_value()); 2422
2428 share->set_this_property_assignments_count(0); 2423 // Set integer fields (smi or int, depending on the architecture).
2429 share->set_this_property_assignments(undefined_value()); 2424 share->set_length(0);
2430 share->set_opt_count(0); 2425 share->set_formal_parameter_count(0);
2426 share->set_expected_nof_properties(0);
2431 share->set_num_literals(0); 2427 share->set_num_literals(0);
2428 share->set_start_position_and_type(0);
2432 share->set_end_position(0); 2429 share->set_end_position(0);
2433 share->set_function_token_position(0); 2430 share->set_function_token_position(0);
2434 share->set_native(false); 2431 // All compiler hints default to false or 0.
2435 return result; 2432 share->set_compiler_hints(0);
2433 share->set_this_property_assignments_count(0);
2434 share->set_opt_count(0);
2435
2436 return share;
2436 } 2437 }
2437 2438
2438 2439
2439 MaybeObject* Heap::AllocateJSMessageObject(String* type, 2440 MaybeObject* Heap::AllocateJSMessageObject(String* type,
2440 JSArray* arguments, 2441 JSArray* arguments,
2441 int start_position, 2442 int start_position,
2442 int end_position, 2443 int end_position,
2443 Object* script, 2444 Object* script,
2444 Object* stack_trace, 2445 Object* stack_trace,
2445 Object* stack_frames) { 2446 Object* stack_frames) {
(...skipping 3606 matching lines...) Expand 10 before | Expand all | Expand 10 after
6052 } 6053 }
6053 6054
6054 6055
6055 void ExternalStringTable::TearDown() { 6056 void ExternalStringTable::TearDown() {
6056 new_space_strings_.Free(); 6057 new_space_strings_.Free();
6057 old_space_strings_.Free(); 6058 old_space_strings_.Free();
6058 } 6059 }
6059 6060
6060 6061
6061 } } // namespace v8::internal 6062 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/compiler.cc ('k') | src/objects.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698