| Index: src/objects.cc
|
| ===================================================================
|
| --- src/objects.cc (revision 4906)
|
| +++ src/objects.cc (working copy)
|
| @@ -75,7 +75,7 @@
|
|
|
|
|
| Object* Object::ToObject() {
|
| - Context* global_context = Top::context()->global_context();
|
| + Context* global_context = Isolate::Current()->context()->global_context();
|
| if (IsJSObject()) {
|
| return this;
|
| } else if (IsNumber()) {
|
| @@ -115,7 +115,7 @@
|
| void Object::Lookup(String* name, LookupResult* result) {
|
| if (IsJSObject()) return JSObject::cast(this)->Lookup(name, result);
|
| Object* holder = NULL;
|
| - Context* global_context = Top::context()->global_context();
|
| + Context* global_context = Isolate::Current()->context()->global_context();
|
| if (IsString()) {
|
| holder = global_context->string_function()->instance_prototype();
|
| } else if (IsNumber()) {
|
| @@ -270,7 +270,7 @@
|
|
|
| // No accessible property found.
|
| *attributes = ABSENT;
|
| - Top::ReportFailedAccessCheck(this, v8::ACCESS_GET);
|
| + Isolate::Current()->ReportFailedAccessCheck(this, v8::ACCESS_GET);
|
| return HEAP->undefined_value();
|
| }
|
|
|
| @@ -333,7 +333,7 @@
|
| }
|
| }
|
|
|
| - Top::ReportFailedAccessCheck(this, v8::ACCESS_HAS);
|
| + Isolate::Current()->ReportFailedAccessCheck(this, v8::ACCESS_HAS);
|
| return ABSENT;
|
| }
|
|
|
| @@ -463,7 +463,7 @@
|
| // property from the current object, we still check that we have
|
| // access to it.
|
| JSObject* checked = JSObject::cast(current);
|
| - if (!Top::MayNamedAccess(checked, name, v8::ACCESS_GET)) {
|
| + if (!Isolate::Current()->MayNamedAccess(checked, name, v8::ACCESS_GET)) {
|
| return checked->GetPropertyWithFailedAccessCheck(receiver,
|
| result,
|
| name,
|
| @@ -521,7 +521,7 @@
|
| Object* Object::GetPrototype() {
|
| // The object is either a number, a string, a boolean, or a real JS object.
|
| if (IsJSObject()) return JSObject::cast(this)->map()->prototype();
|
| - Context* context = Top::context()->global_context();
|
| + Context* context = Isolate::Current()->context()->global_context();
|
|
|
| if (IsNumber()) return context->number_function()->instance_prototype();
|
| if (IsString()) return context->string_function()->instance_prototype();
|
| @@ -587,7 +587,7 @@
|
| !Smi::IsValid(value) ||
|
| value != ((value << kFailureTypeTagSize) >> kFailureTypeTagSize) ||
|
| !Smi::IsValid(value << kFailureTypeTagSize)) {
|
| - Top::context()->mark_out_of_memory();
|
| + Isolate::Current()->context()->mark_out_of_memory();
|
| return Failure::OutOfMemoryException();
|
| }
|
| return Construct(RETRY_AFTER_GC, value);
|
| @@ -1252,7 +1252,8 @@
|
| // global object_function's map and there is not a transition for name.
|
| bool allow_map_transition =
|
| !old_descriptors->Contains(name) &&
|
| - (Top::context()->global_context()->object_function()->map() != map());
|
| + (Isolate::Current()->context()->global_context()->object_function()->
|
| + map() != map());
|
|
|
| ASSERT(index < map()->inobject_properties() ||
|
| (index - map()->inobject_properties()) < properties()->length() ||
|
| @@ -1315,7 +1316,8 @@
|
|
|
| // If the old map is the global object map (from new Object()),
|
| // then transitions are not added to it, so we are done.
|
| - if (old_map == Top::context()->global_context()->object_function()->map()) {
|
| + if (old_map == Isolate::Current()->context()->global_context()->
|
| + object_function()->map()) {
|
| return function;
|
| }
|
|
|
| @@ -1448,7 +1450,8 @@
|
| return result;
|
| }
|
| // Do not add transitions to the map of "new Object()".
|
| - if (map() == Top::context()->global_context()->object_function()->map()) {
|
| + if (map() == Isolate::Current()->context()->global_context()->
|
| + object_function()->map()) {
|
| return result;
|
| }
|
|
|
| @@ -1609,8 +1612,9 @@
|
| Handle<String> key(name);
|
| Handle<Object> holder_handle(holder);
|
| Handle<Object> args[2] = { key, holder_handle };
|
| - return Top::Throw(*Factory::NewTypeError("no_setter_in_callback",
|
| - HandleVector(args, 2)));
|
| + return Isolate::Current()->Throw(
|
| + *Factory::NewTypeError("no_setter_in_callback",
|
| + HandleVector(args, 2)));
|
| }
|
| }
|
|
|
| @@ -1811,7 +1815,7 @@
|
| }
|
| }
|
|
|
| - Top::ReportFailedAccessCheck(this, v8::ACCESS_SET);
|
| + Isolate::Current()->ReportFailedAccessCheck(this, v8::ACCESS_SET);
|
| return value;
|
| }
|
|
|
| @@ -1834,7 +1838,7 @@
|
|
|
| // Check access rights if needed.
|
| if (IsAccessCheckNeeded()
|
| - && !Top::MayNamedAccess(this, name, v8::ACCESS_SET)) {
|
| + && !Isolate::Current()->MayNamedAccess(this, name, v8::ACCESS_SET)) {
|
| return SetPropertyWithFailedAccessCheck(result, name, value);
|
| }
|
|
|
| @@ -1921,7 +1925,7 @@
|
| LocalLookup(name, &result);
|
| // Check access rights if needed.
|
| if (IsAccessCheckNeeded()
|
| - && !Top::MayNamedAccess(this, name, v8::ACCESS_SET)) {
|
| + && !Isolate::Current()->MayNamedAccess(this, name, v8::ACCESS_SET)) {
|
| return SetPropertyWithFailedAccessCheck(&result, name, value);
|
| }
|
|
|
| @@ -2070,7 +2074,7 @@
|
| bool continue_search) {
|
| // Check access rights if needed.
|
| if (IsAccessCheckNeeded() &&
|
| - !Top::MayNamedAccess(this, name, v8::ACCESS_HAS)) {
|
| + !Isolate::Current()->MayNamedAccess(this, name, v8::ACCESS_HAS)) {
|
| return GetPropertyAttributeWithFailedAccessCheck(receiver,
|
| result,
|
| name,
|
| @@ -2363,8 +2367,8 @@
|
| Object* JSObject::DeleteElement(uint32_t index, DeleteMode mode) {
|
| // Check access rights if needed.
|
| if (IsAccessCheckNeeded() &&
|
| - !Top::MayIndexedAccess(this, index, v8::ACCESS_DELETE)) {
|
| - Top::ReportFailedAccessCheck(this, v8::ACCESS_DELETE);
|
| + !Isolate::Current()->MayIndexedAccess(this, index, v8::ACCESS_DELETE)) {
|
| + Isolate::Current()->ReportFailedAccessCheck(this, v8::ACCESS_DELETE);
|
| return HEAP->false_value();
|
| }
|
|
|
| @@ -2426,8 +2430,8 @@
|
|
|
| // Check access rights if needed.
|
| if (IsAccessCheckNeeded() &&
|
| - !Top::MayNamedAccess(this, name, v8::ACCESS_DELETE)) {
|
| - Top::ReportFailedAccessCheck(this, v8::ACCESS_DELETE);
|
| + !Isolate::Current()->MayNamedAccess(this, name, v8::ACCESS_DELETE)) {
|
| + Isolate::Current()->ReportFailedAccessCheck(this, v8::ACCESS_DELETE);
|
| return HEAP->false_value();
|
| }
|
|
|
| @@ -2527,7 +2531,8 @@
|
| if (IsJSFunction()) {
|
| // Get the constructor function for arguments array.
|
| JSObject* arguments_boilerplate =
|
| - Top::context()->global_context()->arguments_boilerplate();
|
| + Isolate::Current()->context()->global_context()->
|
| + arguments_boilerplate();
|
| JSFunction* arguments_function =
|
| JSFunction::cast(arguments_boilerplate->map()->constructor());
|
|
|
| @@ -2775,7 +2780,7 @@
|
|
|
| bool JSObject::CanSetCallback(String* name) {
|
| ASSERT(!IsAccessCheckNeeded()
|
| - || Top::MayNamedAccess(this, name, v8::ACCESS_SET));
|
| + || Isolate::Current()->MayNamedAccess(this, name, v8::ACCESS_SET));
|
|
|
| // Check if there is an API defined callback object which prohibits
|
| // callback overwriting in this object or it's prototype chain.
|
| @@ -2856,8 +2861,8 @@
|
| PropertyAttributes attributes) {
|
| // Check access rights if needed.
|
| if (IsAccessCheckNeeded() &&
|
| - !Top::MayNamedAccess(this, name, v8::ACCESS_SET)) {
|
| - Top::ReportFailedAccessCheck(this, v8::ACCESS_SET);
|
| + !Isolate::Current()->MayNamedAccess(this, name, v8::ACCESS_SET)) {
|
| + Isolate::Current()->ReportFailedAccessCheck(this, v8::ACCESS_SET);
|
| return HEAP->undefined_value();
|
| }
|
|
|
| @@ -2880,8 +2885,8 @@
|
| String* name = String::cast(info->name());
|
| // Check access rights if needed.
|
| if (IsAccessCheckNeeded() &&
|
| - !Top::MayNamedAccess(this, name, v8::ACCESS_SET)) {
|
| - Top::ReportFailedAccessCheck(this, v8::ACCESS_SET);
|
| + !Isolate::Current()->MayNamedAccess(this, name, v8::ACCESS_SET)) {
|
| + Isolate::Current()->ReportFailedAccessCheck(this, v8::ACCESS_SET);
|
| return HEAP->undefined_value();
|
| }
|
|
|
| @@ -2955,8 +2960,8 @@
|
|
|
| // Check access rights if needed.
|
| if (IsAccessCheckNeeded() &&
|
| - !Top::MayNamedAccess(this, name, v8::ACCESS_HAS)) {
|
| - Top::ReportFailedAccessCheck(this, v8::ACCESS_HAS);
|
| + !Isolate::Current()->MayNamedAccess(this, name, v8::ACCESS_HAS)) {
|
| + Isolate::Current()->ReportFailedAccessCheck(this, v8::ACCESS_HAS);
|
| return HEAP->undefined_value();
|
| }
|
|
|
| @@ -5040,7 +5045,8 @@
|
| map()->set_constructor(value);
|
| map()->set_non_instance_prototype(true);
|
| construct_prototype =
|
| - Top::context()->global_context()->initial_object_prototype();
|
| + Isolate::Current()->context()->global_context()->
|
| + initial_object_prototype();
|
| } else {
|
| map()->set_non_instance_prototype(false);
|
| }
|
| @@ -5582,8 +5588,9 @@
|
|
|
| static Object* ArrayLengthRangeError() {
|
| HandleScope scope;
|
| - return Top::Throw(*Factory::NewRangeError("invalid_array_length",
|
| - HandleVector<Object>(NULL, 0)));
|
| + return Isolate::Current()->Throw(
|
| + *Factory::NewRangeError("invalid_array_length",
|
| + HandleVector<Object>(NULL, 0)));
|
| }
|
|
|
|
|
| @@ -5683,8 +5690,8 @@
|
| if (JSObject::cast(pt) == this) {
|
| // Cycle detected.
|
| HandleScope scope;
|
| - return Top::Throw(*Factory::NewError("cyclic_proto",
|
| - HandleVector<Object>(NULL, 0)));
|
| + return Isolate::Current()->Throw(
|
| + *Factory::NewError("cyclic_proto", HandleVector<Object>(NULL, 0)));
|
| }
|
| }
|
|
|
| @@ -5809,8 +5816,8 @@
|
| bool JSObject::HasLocalElement(uint32_t index) {
|
| // Check access rights if needed.
|
| if (IsAccessCheckNeeded() &&
|
| - !Top::MayIndexedAccess(this, index, v8::ACCESS_HAS)) {
|
| - Top::ReportFailedAccessCheck(this, v8::ACCESS_HAS);
|
| + !Isolate::Current()->MayIndexedAccess(this, index, v8::ACCESS_HAS)) {
|
| + Isolate::Current()->ReportFailedAccessCheck(this, v8::ACCESS_HAS);
|
| return false;
|
| }
|
|
|
| @@ -5861,8 +5868,8 @@
|
| bool JSObject::HasElementWithReceiver(JSObject* receiver, uint32_t index) {
|
| // Check access rights if needed.
|
| if (IsAccessCheckNeeded() &&
|
| - !Top::MayIndexedAccess(this, index, v8::ACCESS_HAS)) {
|
| - Top::ReportFailedAccessCheck(this, v8::ACCESS_HAS);
|
| + !Isolate::Current()->MayIndexedAccess(this, index, v8::ACCESS_HAS)) {
|
| + Isolate::Current()->ReportFailedAccessCheck(this, v8::ACCESS_HAS);
|
| return false;
|
| }
|
|
|
| @@ -6044,8 +6051,9 @@
|
| Handle<Object> holder_handle(holder);
|
| Handle<Object> key(Factory::NewNumberFromUint(index));
|
| Handle<Object> args[2] = { key, holder_handle };
|
| - return Top::Throw(*Factory::NewTypeError("no_setter_in_callback",
|
| - HandleVector(args, 2)));
|
| + return Isolate::Current()->Throw(
|
| + *Factory::NewTypeError("no_setter_in_callback",
|
| + HandleVector(args, 2)));
|
| }
|
| }
|
|
|
| @@ -6111,8 +6119,8 @@
|
| Object* JSObject::SetElement(uint32_t index, Object* value) {
|
| // Check access rights if needed.
|
| if (IsAccessCheckNeeded() &&
|
| - !Top::MayIndexedAccess(this, index, v8::ACCESS_SET)) {
|
| - Top::ReportFailedAccessCheck(this, v8::ACCESS_SET);
|
| + !Isolate::Current()->MayIndexedAccess(this, index, v8::ACCESS_SET)) {
|
| + Isolate::Current()->ReportFailedAccessCheck(this, v8::ACCESS_SET);
|
| return value;
|
| }
|
|
|
| @@ -6350,8 +6358,8 @@
|
| Object* JSObject::GetElementWithReceiver(JSObject* receiver, uint32_t index) {
|
| // Check access rights if needed.
|
| if (IsAccessCheckNeeded() &&
|
| - !Top::MayIndexedAccess(this, index, v8::ACCESS_GET)) {
|
| - Top::ReportFailedAccessCheck(this, v8::ACCESS_GET);
|
| + !Isolate::Current()->MayIndexedAccess(this, index, v8::ACCESS_GET)) {
|
| + Isolate::Current()->ReportFailedAccessCheck(this, v8::ACCESS_GET);
|
| return HEAP->undefined_value();
|
| }
|
|
|
| @@ -6670,8 +6678,8 @@
|
| bool JSObject::HasRealNamedProperty(String* key) {
|
| // Check access rights if needed.
|
| if (IsAccessCheckNeeded() &&
|
| - !Top::MayNamedAccess(this, key, v8::ACCESS_HAS)) {
|
| - Top::ReportFailedAccessCheck(this, v8::ACCESS_HAS);
|
| + !Isolate::Current()->MayNamedAccess(this, key, v8::ACCESS_HAS)) {
|
| + Isolate::Current()->ReportFailedAccessCheck(this, v8::ACCESS_HAS);
|
| return false;
|
| }
|
|
|
| @@ -6684,8 +6692,8 @@
|
| bool JSObject::HasRealElementProperty(uint32_t index) {
|
| // Check access rights if needed.
|
| if (IsAccessCheckNeeded() &&
|
| - !Top::MayIndexedAccess(this, index, v8::ACCESS_HAS)) {
|
| - Top::ReportFailedAccessCheck(this, v8::ACCESS_HAS);
|
| + !Isolate::Current()->MayIndexedAccess(this, index, v8::ACCESS_HAS)) {
|
| + Isolate::Current()->ReportFailedAccessCheck(this, v8::ACCESS_HAS);
|
| return false;
|
| }
|
|
|
| @@ -6732,8 +6740,8 @@
|
| bool JSObject::HasRealNamedCallbackProperty(String* key) {
|
| // Check access rights if needed.
|
| if (IsAccessCheckNeeded() &&
|
| - !Top::MayNamedAccess(this, key, v8::ACCESS_HAS)) {
|
| - Top::ReportFailedAccessCheck(this, v8::ACCESS_HAS);
|
| + !Isolate::Current()->MayNamedAccess(this, key, v8::ACCESS_HAS)) {
|
| + Isolate::Current()->ReportFailedAccessCheck(this, v8::ACCESS_HAS);
|
| return false;
|
| }
|
|
|
|
|