| Index: src/accessors.cc
|
| diff --git a/src/accessors.cc b/src/accessors.cc
|
| index 45869ea63097fbdfee192f76d4f2f0cfc6581ccf..3c09693e7b8bc8e47622361223bbaff8dd303eb2 100644
|
| --- a/src/accessors.cc
|
| +++ b/src/accessors.cc
|
| @@ -51,19 +51,27 @@ static C* FindInstanceOf(Isolate* isolate, Object* obj) {
|
|
|
|
|
| // Entry point that never should be called.
|
| -MaybeObject* Accessors::IllegalSetter(JSObject*, Object*, void*) {
|
| +MaybeObject* Accessors::IllegalSetter(Isolate* isolate,
|
| + JSObject*,
|
| + Object*,
|
| + void*) {
|
| UNREACHABLE();
|
| return NULL;
|
| }
|
|
|
|
|
| -Object* Accessors::IllegalGetAccessor(Object* object, void*) {
|
| +Object* Accessors::IllegalGetAccessor(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| UNREACHABLE();
|
| return object;
|
| }
|
|
|
|
|
| -MaybeObject* Accessors::ReadOnlySetAccessor(JSObject*, Object* value, void*) {
|
| +MaybeObject* Accessors::ReadOnlySetAccessor(Isolate* isolate,
|
| + JSObject*,
|
| + Object* value,
|
| + void*) {
|
| // According to ECMA-262, section 8.6.2.2, page 28, setting
|
| // read-only properties must be silently ignored.
|
| return value;
|
| @@ -75,29 +83,32 @@ MaybeObject* Accessors::ReadOnlySetAccessor(JSObject*, Object* value, void*) {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::ArrayGetLength(Object* object, void*) {
|
| +MaybeObject* Accessors::ArrayGetLength(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| // Traverse the prototype chain until we reach an array.
|
| - JSArray* holder = FindInstanceOf<JSArray>(Isolate::Current(), object);
|
| + JSArray* holder = FindInstanceOf<JSArray>(isolate, object);
|
| return holder == NULL ? Smi::FromInt(0) : holder->length();
|
| }
|
|
|
|
|
| // The helper function will 'flatten' Number objects.
|
| -Object* Accessors::FlattenNumber(Object* value) {
|
| +Object* Accessors::FlattenNumber(Isolate* isolate, Object* value) {
|
| if (value->IsNumber() || !value->IsJSValue()) return value;
|
| JSValue* wrapper = JSValue::cast(value);
|
| - ASSERT(Isolate::Current()->context()->native_context()->number_function()->
|
| + ASSERT(wrapper->GetIsolate()->context()->native_context()->number_function()->
|
| has_initial_map());
|
| - Map* number_map = Isolate::Current()->context()->native_context()->
|
| + Map* number_map = isolate->context()->native_context()->
|
| number_function()->initial_map();
|
| if (wrapper->map() == number_map) return wrapper->value();
|
| return value;
|
| }
|
|
|
|
|
| -MaybeObject* Accessors::ArraySetLength(JSObject* object, Object* value, void*) {
|
| - Isolate* isolate = object->GetIsolate();
|
| -
|
| +MaybeObject* Accessors::ArraySetLength(Isolate* isolate,
|
| + JSObject* object,
|
| + Object* value,
|
| + void*) {
|
| // This means one of the object's prototypes is a JSArray and the
|
| // object does not have a 'length' property. Calling SetProperty
|
| // causes an infinite loop.
|
| @@ -106,7 +117,7 @@ MaybeObject* Accessors::ArraySetLength(JSObject* object, Object* value, void*) {
|
| isolate->heap()->length_string(), value, NONE);
|
| }
|
|
|
| - value = FlattenNumber(value);
|
| + value = FlattenNumber(isolate, value);
|
|
|
| // Need to call methods that may trigger GC.
|
| HandleScope scope(isolate);
|
| @@ -142,7 +153,9 @@ const AccessorDescriptor Accessors::ArrayLength = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::StringGetLength(Object* object, void*) {
|
| +MaybeObject* Accessors::StringGetLength(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| Object* value = object;
|
| if (object->IsJSValue()) value = JSValue::cast(object)->value();
|
| if (value->IsString()) return Smi::FromInt(String::cast(value)->length());
|
| @@ -164,7 +177,9 @@ const AccessorDescriptor Accessors::StringLength = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::ScriptGetSource(Object* object, void*) {
|
| +MaybeObject* Accessors::ScriptGetSource(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| Object* script = JSValue::cast(object)->value();
|
| return Script::cast(script)->source();
|
| }
|
| @@ -182,7 +197,9 @@ const AccessorDescriptor Accessors::ScriptSource = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::ScriptGetName(Object* object, void*) {
|
| +MaybeObject* Accessors::ScriptGetName(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| Object* script = JSValue::cast(object)->value();
|
| return Script::cast(script)->name();
|
| }
|
| @@ -200,7 +217,7 @@ const AccessorDescriptor Accessors::ScriptName = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::ScriptGetId(Object* object, void*) {
|
| +MaybeObject* Accessors::ScriptGetId(Isolate* isolate, Object* object, void*) {
|
| Object* script = JSValue::cast(object)->value();
|
| return Script::cast(script)->id();
|
| }
|
| @@ -218,7 +235,9 @@ const AccessorDescriptor Accessors::ScriptId = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::ScriptGetLineOffset(Object* object, void*) {
|
| +MaybeObject* Accessors::ScriptGetLineOffset(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| Object* script = JSValue::cast(object)->value();
|
| return Script::cast(script)->line_offset();
|
| }
|
| @@ -236,7 +255,9 @@ const AccessorDescriptor Accessors::ScriptLineOffset = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::ScriptGetColumnOffset(Object* object, void*) {
|
| +MaybeObject* Accessors::ScriptGetColumnOffset(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| Object* script = JSValue::cast(object)->value();
|
| return Script::cast(script)->column_offset();
|
| }
|
| @@ -254,7 +275,9 @@ const AccessorDescriptor Accessors::ScriptColumnOffset = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::ScriptGetData(Object* object, void*) {
|
| +MaybeObject* Accessors::ScriptGetData(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| Object* script = JSValue::cast(object)->value();
|
| return Script::cast(script)->data();
|
| }
|
| @@ -272,7 +295,9 @@ const AccessorDescriptor Accessors::ScriptData = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::ScriptGetType(Object* object, void*) {
|
| +MaybeObject* Accessors::ScriptGetType(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| Object* script = JSValue::cast(object)->value();
|
| return Script::cast(script)->type();
|
| }
|
| @@ -290,7 +315,9 @@ const AccessorDescriptor Accessors::ScriptType = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::ScriptGetCompilationType(Object* object, void*) {
|
| +MaybeObject* Accessors::ScriptGetCompilationType(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| Object* script = JSValue::cast(object)->value();
|
| return Smi::FromInt(Script::cast(script)->compilation_type());
|
| }
|
| @@ -308,9 +335,10 @@ const AccessorDescriptor Accessors::ScriptCompilationType = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::ScriptGetLineEnds(Object* object, void*) {
|
| +MaybeObject* Accessors::ScriptGetLineEnds(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| JSValue* wrapper = JSValue::cast(object);
|
| - Isolate* isolate = wrapper->GetIsolate();
|
| HandleScope scope(isolate);
|
| Handle<Script> script(Script::cast(wrapper->value()), isolate);
|
| InitScriptLineEnds(script);
|
| @@ -337,7 +365,9 @@ const AccessorDescriptor Accessors::ScriptLineEnds = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::ScriptGetContextData(Object* object, void*) {
|
| +MaybeObject* Accessors::ScriptGetContextData(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| Object* script = JSValue::cast(object)->value();
|
| return Script::cast(script)->context_data();
|
| }
|
| @@ -355,7 +385,9 @@ const AccessorDescriptor Accessors::ScriptContextData = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::ScriptGetEvalFromScript(Object* object, void*) {
|
| +MaybeObject* Accessors::ScriptGetEvalFromScript(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| Object* script = JSValue::cast(object)->value();
|
| if (!Script::cast(script)->eval_from_shared()->IsUndefined()) {
|
| Handle<SharedFunctionInfo> eval_from_shared(
|
| @@ -382,9 +414,11 @@ const AccessorDescriptor Accessors::ScriptEvalFromScript = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::ScriptGetEvalFromScriptPosition(Object* object, void*) {
|
| +MaybeObject* Accessors::ScriptGetEvalFromScriptPosition(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| Script* raw_script = Script::cast(JSValue::cast(object)->value());
|
| - HandleScope scope(raw_script->GetIsolate());
|
| + HandleScope scope(isolate);
|
| Handle<Script> script(raw_script);
|
|
|
| // If this is not a script compiled through eval there is no eval position.
|
| @@ -413,7 +447,9 @@ const AccessorDescriptor Accessors::ScriptEvalFromScriptPosition = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::ScriptGetEvalFromFunctionName(Object* object, void*) {
|
| +MaybeObject* Accessors::ScriptGetEvalFromFunctionName(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| Object* script = JSValue::cast(object)->value();
|
| Handle<SharedFunctionInfo> shared(SharedFunctionInfo::cast(
|
| Script::cast(script)->eval_from_shared()));
|
| @@ -442,7 +478,9 @@ const AccessorDescriptor Accessors::ScriptEvalFromFunctionName = {
|
|
|
| Handle<Object> Accessors::FunctionGetPrototype(Handle<JSFunction> function) {
|
| CALL_HEAP_FUNCTION(function->GetIsolate(),
|
| - Accessors::FunctionGetPrototype(*function, NULL),
|
| + Accessors::FunctionGetPrototype(function->GetIsolate(),
|
| + *function,
|
| + NULL),
|
| Object);
|
| }
|
|
|
| @@ -451,15 +489,17 @@ Handle<Object> Accessors::FunctionSetPrototype(Handle<JSFunction> function,
|
| Handle<Object> prototype) {
|
| ASSERT(function->should_have_prototype());
|
| CALL_HEAP_FUNCTION(function->GetIsolate(),
|
| - Accessors::FunctionSetPrototype(*function,
|
| + Accessors::FunctionSetPrototype(function->GetIsolate(),
|
| + *function,
|
| *prototype,
|
| NULL),
|
| Object);
|
| }
|
|
|
|
|
| -MaybeObject* Accessors::FunctionGetPrototype(Object* object, void*) {
|
| - Isolate* isolate = Isolate::Current();
|
| +MaybeObject* Accessors::FunctionGetPrototype(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| JSFunction* function_raw = FindInstanceOf<JSFunction>(isolate, object);
|
| if (function_raw == NULL) return isolate->heap()->undefined_value();
|
| while (!function_raw->should_have_prototype()) {
|
| @@ -480,10 +520,10 @@ MaybeObject* Accessors::FunctionGetPrototype(Object* object, void*) {
|
| }
|
|
|
|
|
| -MaybeObject* Accessors::FunctionSetPrototype(JSObject* object,
|
| +MaybeObject* Accessors::FunctionSetPrototype(Isolate* isolate,
|
| + JSObject* object,
|
| Object* value_raw,
|
| void*) {
|
| - Isolate* isolate = object->GetIsolate();
|
| Heap* heap = isolate->heap();
|
| JSFunction* function_raw = FindInstanceOf<JSFunction>(isolate, object);
|
| if (function_raw == NULL) return heap->undefined_value();
|
| @@ -534,8 +574,9 @@ const AccessorDescriptor Accessors::FunctionPrototype = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::FunctionGetLength(Object* object, void*) {
|
| - Isolate* isolate = Isolate::Current();
|
| +MaybeObject* Accessors::FunctionGetLength(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| JSFunction* function = FindInstanceOf<JSFunction>(isolate, object);
|
| if (function == NULL) return Smi::FromInt(0);
|
| // Check if already compiled.
|
| @@ -565,8 +606,9 @@ const AccessorDescriptor Accessors::FunctionLength = {
|
| //
|
|
|
|
|
| -MaybeObject* Accessors::FunctionGetName(Object* object, void*) {
|
| - Isolate* isolate = Isolate::Current();
|
| +MaybeObject* Accessors::FunctionGetName(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| JSFunction* holder = FindInstanceOf<JSFunction>(isolate, object);
|
| return holder == NULL
|
| ? isolate->heap()->undefined_value()
|
| @@ -588,7 +630,9 @@ const AccessorDescriptor Accessors::FunctionName = {
|
|
|
| Handle<Object> Accessors::FunctionGetArguments(Handle<JSFunction> function) {
|
| CALL_HEAP_FUNCTION(function->GetIsolate(),
|
| - Accessors::FunctionGetArguments(*function, NULL),
|
| + Accessors::FunctionGetArguments(function->GetIsolate(),
|
| + *function,
|
| + NULL),
|
| Object);
|
| }
|
|
|
| @@ -620,8 +664,9 @@ static MaybeObject* ConstructArgumentsObjectForInlinedFunction(
|
| }
|
|
|
|
|
| -MaybeObject* Accessors::FunctionGetArguments(Object* object, void*) {
|
| - Isolate* isolate = Isolate::Current();
|
| +MaybeObject* Accessors::FunctionGetArguments(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| HandleScope scope(isolate);
|
| JSFunction* holder = FindInstanceOf<JSFunction>(isolate, object);
|
| if (holder == NULL) return isolate->heap()->undefined_value();
|
| @@ -743,8 +788,9 @@ class FrameFunctionIterator {
|
| };
|
|
|
|
|
| -MaybeObject* Accessors::FunctionGetCaller(Object* object, void*) {
|
| - Isolate* isolate = Isolate::Current();
|
| +MaybeObject* Accessors::FunctionGetCaller(Isolate* isolate,
|
| + Object* object,
|
| + void*) {
|
| HandleScope scope(isolate);
|
| DisallowHeapAllocation no_allocation;
|
| JSFunction* holder = FindInstanceOf<JSFunction>(isolate, object);
|
|
|