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

Side by Side Diff: src/factory.cc

Issue 2840018: [Isolates] Moved more compilation-related globals (builtins, runtime, &c.)... (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/isolates/
Patch Set: rebase Created 10 years, 6 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/execution.cc ('k') | src/frames.cc » ('j') | src/runtime.h » ('J')
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 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 Vector< Handle<Object> > args) { 406 Vector< Handle<Object> > args) {
407 return NewError("MakeError", type, args); 407 return NewError("MakeError", type, args);
408 } 408 }
409 409
410 410
411 Handle<Object> Factory::NewError(const char* maker, 411 Handle<Object> Factory::NewError(const char* maker,
412 const char* type, 412 const char* type,
413 Handle<JSArray> args) { 413 Handle<JSArray> args) {
414 Handle<String> make_str = Factory::LookupAsciiSymbol(maker); 414 Handle<String> make_str = Factory::LookupAsciiSymbol(maker);
415 Handle<Object> fun_obj( 415 Handle<Object> fun_obj(
416 Isolate::Current()->builtins()->GetProperty(*make_str)); 416 Isolate::Current()->js_builtins_object()->GetProperty(*make_str));
417 // If the builtins haven't been properly configured yet this error 417 // If the builtins haven't been properly configured yet this error
418 // constructor may not have been defined. Bail out. 418 // constructor may not have been defined. Bail out.
419 if (!fun_obj->IsJSFunction()) 419 if (!fun_obj->IsJSFunction())
420 return Factory::undefined_value(); 420 return Factory::undefined_value();
421 Handle<JSFunction> fun = Handle<JSFunction>::cast(fun_obj); 421 Handle<JSFunction> fun = Handle<JSFunction>::cast(fun_obj);
422 Handle<Object> type_obj = Factory::LookupAsciiSymbol(type); 422 Handle<Object> type_obj = Factory::LookupAsciiSymbol(type);
423 Object** argv[2] = { type_obj.location(), 423 Object** argv[2] = { type_obj.location(),
424 Handle<Object>::cast(args).location() }; 424 Handle<Object>::cast(args).location() };
425 425
426 // Invoke the JavaScript factory method. If an exception is thrown while 426 // Invoke the JavaScript factory method. If an exception is thrown while
427 // running the factory method, use the exception as the result. 427 // running the factory method, use the exception as the result.
428 bool caught_exception; 428 bool caught_exception;
429 Handle<Object> result = Execution::TryCall(fun, 429 Handle<Object> result = Execution::TryCall(fun,
430 Isolate::Current()->builtins(), 430 Isolate::Current()->js_builtins_object(), 2, argv, &caught_exception);
431 2,
432 argv,
433 &caught_exception);
434 return result; 431 return result;
435 } 432 }
436 433
437 434
438 Handle<Object> Factory::NewError(Handle<String> message) { 435 Handle<Object> Factory::NewError(Handle<String> message) {
439 return NewError("$Error", message); 436 return NewError("$Error", message);
440 } 437 }
441 438
442 439
443 Handle<Object> Factory::NewError(const char* constructor, 440 Handle<Object> Factory::NewError(const char* constructor,
444 Handle<String> message) { 441 Handle<String> message) {
445 Handle<String> constr = Factory::LookupAsciiSymbol(constructor); 442 Handle<String> constr = Factory::LookupAsciiSymbol(constructor);
446 Handle<JSFunction> fun = 443 Handle<JSFunction> fun =
447 Handle<JSFunction>( 444 Handle<JSFunction>(
448 JSFunction::cast( 445 JSFunction::cast(
449 Isolate::Current()->builtins()->GetProperty(*constr))); 446 Isolate::Current()->js_builtins_object()->GetProperty(*constr)));
450 Object** argv[1] = { Handle<Object>::cast(message).location() }; 447 Object** argv[1] = { Handle<Object>::cast(message).location() };
451 448
452 // Invoke the JavaScript factory method. If an exception is thrown while 449 // Invoke the JavaScript factory method. If an exception is thrown while
453 // running the factory method, use the exception as the result. 450 // running the factory method, use the exception as the result.
454 bool caught_exception; 451 bool caught_exception;
455 Handle<Object> result = Execution::TryCall(fun, 452 Handle<Object> result = Execution::TryCall(fun,
456 Isolate::Current()->builtins(), 453 Isolate::Current()->js_builtins_object(), 1, argv, &caught_exception);
457 1,
458 argv,
459 &caught_exception);
460 return result; 454 return result;
461 } 455 }
462 456
463 457
464 Handle<JSFunction> Factory::NewFunction(Handle<String> name, 458 Handle<JSFunction> Factory::NewFunction(Handle<String> name,
465 InstanceType type, 459 InstanceType type,
466 int instance_size, 460 int instance_size,
467 Handle<Code> code, 461 Handle<Code> code,
468 bool force_initial_map) { 462 bool force_initial_map) {
469 // Allocate the function 463 // Allocate the function
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 775
782 776
783 Handle<JSObject> Factory::NewArgumentsObject(Handle<Object> callee, 777 Handle<JSObject> Factory::NewArgumentsObject(Handle<Object> callee,
784 int length) { 778 int length) {
785 CALL_HEAP_FUNCTION(HEAP->AllocateArgumentsObject(*callee, length), JSObject); 779 CALL_HEAP_FUNCTION(HEAP->AllocateArgumentsObject(*callee, length), JSObject);
786 } 780 }
787 781
788 782
789 Handle<JSFunction> Factory::CreateApiFunction( 783 Handle<JSFunction> Factory::CreateApiFunction(
790 Handle<FunctionTemplateInfo> obj, ApiInstanceType instance_type) { 784 Handle<FunctionTemplateInfo> obj, ApiInstanceType instance_type) {
791 Handle<Code> code = Handle<Code>(Builtins::builtin(Builtins::HandleApiCall)); 785 Handle<Code> code = Handle<Code>(Isolate::Current()->builtins()->builtin(
786 Builtins::HandleApiCall));
792 Handle<Code> construct_stub = 787 Handle<Code> construct_stub =
793 Handle<Code>(Builtins::builtin(Builtins::JSConstructStubApi)); 788 Handle<Code>(Isolate::Current()->builtins()->builtin(
789 Builtins::JSConstructStubApi));
794 790
795 int internal_field_count = 0; 791 int internal_field_count = 0;
796 if (!obj->instance_template()->IsUndefined()) { 792 if (!obj->instance_template()->IsUndefined()) {
797 Handle<ObjectTemplateInfo> instance_template = 793 Handle<ObjectTemplateInfo> instance_template =
798 Handle<ObjectTemplateInfo>( 794 Handle<ObjectTemplateInfo>(
799 ObjectTemplateInfo::cast(obj->instance_template())); 795 ObjectTemplateInfo::cast(obj->instance_template()));
800 internal_field_count = 796 internal_field_count =
801 Smi::cast(instance_template->internal_field_count())->value(); 797 Smi::cast(instance_template->internal_field_count())->value();
802 } 798 }
803 799
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
975 Execution::ConfigureInstance(instance, 971 Execution::ConfigureInstance(instance,
976 instance_template, 972 instance_template,
977 pending_exception); 973 pending_exception);
978 } else { 974 } else {
979 *pending_exception = false; 975 *pending_exception = false;
980 } 976 }
981 } 977 }
982 978
983 979
984 } } // namespace v8::internal 980 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/execution.cc ('k') | src/frames.cc » ('j') | src/runtime.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698