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

Side by Side Diff: src/mark-compact.cc

Issue 6717018: Introduce accessors on builtins instance (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fix tests and lint. Created 9 years, 9 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/log.cc ('k') | src/objects.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 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 jsfunction_candidates_head_ = function; 240 jsfunction_candidates_head_ = function;
241 } 241 }
242 242
243 void ProcessCandidates() { 243 void ProcessCandidates() {
244 ProcessSharedFunctionInfoCandidates(); 244 ProcessSharedFunctionInfoCandidates();
245 ProcessJSFunctionCandidates(); 245 ProcessJSFunctionCandidates();
246 } 246 }
247 247
248 private: 248 private:
249 void ProcessJSFunctionCandidates() { 249 void ProcessJSFunctionCandidates() {
250 Code* lazy_compile = isolate_->builtins()->builtin(Builtins::LazyCompile); 250 Code* lazy_compile = isolate_->builtins()->builtin(Builtins::kLazyCompile);
251 251
252 JSFunction* candidate = jsfunction_candidates_head_; 252 JSFunction* candidate = jsfunction_candidates_head_;
253 JSFunction* next_candidate; 253 JSFunction* next_candidate;
254 while (candidate != NULL) { 254 while (candidate != NULL) {
255 next_candidate = GetNextCandidate(candidate); 255 next_candidate = GetNextCandidate(candidate);
256 256
257 SharedFunctionInfo* shared = candidate->unchecked_shared(); 257 SharedFunctionInfo* shared = candidate->unchecked_shared();
258 258
259 Code* code = shared->unchecked_code(); 259 Code* code = shared->unchecked_code();
260 if (!code->IsMarked()) { 260 if (!code->IsMarked()) {
261 shared->set_code(lazy_compile); 261 shared->set_code(lazy_compile);
262 candidate->set_code(lazy_compile); 262 candidate->set_code(lazy_compile);
263 } else { 263 } else {
264 candidate->set_code(shared->unchecked_code()); 264 candidate->set_code(shared->unchecked_code());
265 } 265 }
266 266
267 candidate = next_candidate; 267 candidate = next_candidate;
268 } 268 }
269 269
270 jsfunction_candidates_head_ = NULL; 270 jsfunction_candidates_head_ = NULL;
271 } 271 }
272 272
273 273
274 void ProcessSharedFunctionInfoCandidates() { 274 void ProcessSharedFunctionInfoCandidates() {
275 Code* lazy_compile = isolate_->builtins()->builtin(Builtins::LazyCompile); 275 Code* lazy_compile = isolate_->builtins()->builtin(Builtins::kLazyCompile);
276 276
277 SharedFunctionInfo* candidate = shared_function_info_candidates_head_; 277 SharedFunctionInfo* candidate = shared_function_info_candidates_head_;
278 SharedFunctionInfo* next_candidate; 278 SharedFunctionInfo* next_candidate;
279 while (candidate != NULL) { 279 while (candidate != NULL) {
280 next_candidate = GetNextCandidate(candidate); 280 next_candidate = GetNextCandidate(candidate);
281 SetNextCandidate(candidate, NULL); 281 SetNextCandidate(candidate, NULL);
282 282
283 Code* code = candidate->unchecked_code(); 283 Code* code = candidate->unchecked_code();
284 if (!code->IsMarked()) { 284 if (!code->IsMarked()) {
285 candidate->set_code(lazy_compile); 285 candidate->set_code(lazy_compile);
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 563
564 inline static bool HasSourceCode(SharedFunctionInfo* info) { 564 inline static bool HasSourceCode(SharedFunctionInfo* info) {
565 Object* undefined = HEAP->raw_unchecked_undefined_value(); 565 Object* undefined = HEAP->raw_unchecked_undefined_value();
566 return (info->script() != undefined) && 566 return (info->script() != undefined) &&
567 (reinterpret_cast<Script*>(info->script())->source() != undefined); 567 (reinterpret_cast<Script*>(info->script())->source() != undefined);
568 } 568 }
569 569
570 570
571 inline static bool IsCompiled(JSFunction* function) { 571 inline static bool IsCompiled(JSFunction* function) {
572 return function->unchecked_code() != 572 return function->unchecked_code() !=
573 Isolate::Current()->builtins()->builtin(Builtins::LazyCompile); 573 Isolate::Current()->builtins()->builtin(Builtins::kLazyCompile);
574 } 574 }
575 575
576 inline static bool IsCompiled(SharedFunctionInfo* function) { 576 inline static bool IsCompiled(SharedFunctionInfo* function) {
577 return function->unchecked_code() != 577 return function->unchecked_code() !=
578 Isolate::Current()->builtins()->builtin(Builtins::LazyCompile); 578 Isolate::Current()->builtins()->builtin(Builtins::kLazyCompile);
579 } 579 }
580 580
581 inline static bool IsFlushable(JSFunction* function) { 581 inline static bool IsFlushable(JSFunction* function) {
582 SharedFunctionInfo* shared_info = function->unchecked_shared(); 582 SharedFunctionInfo* shared_info = function->unchecked_shared();
583 583
584 // Code is either on stack, in compilation cache or referenced 584 // Code is either on stack, in compilation cache or referenced
585 // by optimized version of function. 585 // by optimized version of function.
586 if (function->unchecked_code()->IsMarked()) { 586 if (function->unchecked_code()->IsMarked()) {
587 shared_info->set_code_age(0); 587 shared_info->set_code_age(0);
588 return false; 588 return false;
(...skipping 2478 matching lines...) Expand 10 before | Expand all | Expand 10 after
3067 } 3067 }
3068 3068
3069 3069
3070 void MarkCompactCollector::Initialize() { 3070 void MarkCompactCollector::Initialize() {
3071 StaticPointersToNewGenUpdatingVisitor::Initialize(); 3071 StaticPointersToNewGenUpdatingVisitor::Initialize();
3072 StaticMarkingVisitor::Initialize(); 3072 StaticMarkingVisitor::Initialize();
3073 } 3073 }
3074 3074
3075 3075
3076 } } // namespace v8::internal 3076 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/log.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698