OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 1093 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1104 | 1104 |
1105 // TODO(rossberg): Support symbols in the API. | 1105 // TODO(rossberg): Support symbols in the API. |
1106 if (name->IsSymbol()) return *value; | 1106 if (name->IsSymbol()) return *value; |
1107 Handle<String> str = Handle<String>::cast(name); | 1107 Handle<String> str = Handle<String>::cast(name); |
1108 | 1108 |
1109 LOG(isolate, ApiNamedPropertyAccess("store", recv, *name)); | 1109 LOG(isolate, ApiNamedPropertyAccess("store", recv, *name)); |
1110 CustomArguments custom_args(isolate, callback->data(), recv, recv); | 1110 CustomArguments custom_args(isolate, callback->data(), recv, recv); |
1111 v8::AccessorInfo info(custom_args.end()); | 1111 v8::AccessorInfo info(custom_args.end()); |
1112 { | 1112 { |
1113 // Leaving JavaScript. | 1113 // Leaving JavaScript. |
1114 VMState state(isolate, EXTERNAL); | 1114 VMState<EXTERNAL> state(isolate); |
1115 ExternalCallbackScope call_scope(isolate, setter_address); | 1115 ExternalCallbackScope call_scope(isolate, setter_address); |
1116 fun(v8::Utils::ToLocal(str), v8::Utils::ToLocal(value), info); | 1116 fun(v8::Utils::ToLocal(str), v8::Utils::ToLocal(value), info); |
1117 } | 1117 } |
1118 RETURN_IF_SCHEDULED_EXCEPTION(isolate); | 1118 RETURN_IF_SCHEDULED_EXCEPTION(isolate); |
1119 return *value; | 1119 return *value; |
1120 } | 1120 } |
1121 | 1121 |
1122 | 1122 |
1123 static const int kAccessorInfoOffsetInInterceptorArgs = 2; | 1123 static const int kAccessorInfoOffsetInInterceptorArgs = 2; |
1124 | 1124 |
(...skipping 25 matching lines...) Expand all Loading... |
1150 ASSERT(getter != NULL); | 1150 ASSERT(getter != NULL); |
1151 | 1151 |
1152 { | 1152 { |
1153 // Use the interceptor getter. | 1153 // Use the interceptor getter. |
1154 v8::AccessorInfo info(args.arguments() - | 1154 v8::AccessorInfo info(args.arguments() - |
1155 kAccessorInfoOffsetInInterceptorArgs); | 1155 kAccessorInfoOffsetInInterceptorArgs); |
1156 HandleScope scope(isolate); | 1156 HandleScope scope(isolate); |
1157 v8::Handle<v8::Value> r; | 1157 v8::Handle<v8::Value> r; |
1158 { | 1158 { |
1159 // Leaving JavaScript. | 1159 // Leaving JavaScript. |
1160 VMState state(isolate, EXTERNAL); | 1160 VMState<EXTERNAL> state(isolate); |
1161 r = getter(v8::Utils::ToLocal(name), info); | 1161 r = getter(v8::Utils::ToLocal(name), info); |
1162 } | 1162 } |
1163 RETURN_IF_SCHEDULED_EXCEPTION(isolate); | 1163 RETURN_IF_SCHEDULED_EXCEPTION(isolate); |
1164 if (!r.IsEmpty()) { | 1164 if (!r.IsEmpty()) { |
1165 Handle<Object> result = v8::Utils::OpenHandle(*r); | 1165 Handle<Object> result = v8::Utils::OpenHandle(*r); |
1166 result->VerifyApiCallResultType(); | 1166 result->VerifyApiCallResultType(); |
1167 return *v8::Utils::OpenHandle(*r); | 1167 return *v8::Utils::OpenHandle(*r); |
1168 } | 1168 } |
1169 } | 1169 } |
1170 | 1170 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1213 ASSERT(getter != NULL); | 1213 ASSERT(getter != NULL); |
1214 | 1214 |
1215 { | 1215 { |
1216 // Use the interceptor getter. | 1216 // Use the interceptor getter. |
1217 v8::AccessorInfo info(args->arguments() - | 1217 v8::AccessorInfo info(args->arguments() - |
1218 kAccessorInfoOffsetInInterceptorArgs); | 1218 kAccessorInfoOffsetInInterceptorArgs); |
1219 HandleScope scope(isolate); | 1219 HandleScope scope(isolate); |
1220 v8::Handle<v8::Value> r; | 1220 v8::Handle<v8::Value> r; |
1221 { | 1221 { |
1222 // Leaving JavaScript. | 1222 // Leaving JavaScript. |
1223 VMState state(isolate, EXTERNAL); | 1223 VMState<EXTERNAL> state(isolate); |
1224 r = getter(v8::Utils::ToLocal(name), info); | 1224 r = getter(v8::Utils::ToLocal(name), info); |
1225 } | 1225 } |
1226 RETURN_IF_SCHEDULED_EXCEPTION(isolate); | 1226 RETURN_IF_SCHEDULED_EXCEPTION(isolate); |
1227 if (!r.IsEmpty()) { | 1227 if (!r.IsEmpty()) { |
1228 *attrs = NONE; | 1228 *attrs = NONE; |
1229 Handle<Object> result = v8::Utils::OpenHandle(*r); | 1229 Handle<Object> result = v8::Utils::OpenHandle(*r); |
1230 result->VerifyApiCallResultType(); | 1230 result->VerifyApiCallResultType(); |
1231 return *result; | 1231 return *result; |
1232 } | 1232 } |
1233 } | 1233 } |
(...skipping 865 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2099 Handle<FunctionTemplateInfo>( | 2099 Handle<FunctionTemplateInfo>( |
2100 FunctionTemplateInfo::cast(signature->receiver())); | 2100 FunctionTemplateInfo::cast(signature->receiver())); |
2101 } | 2101 } |
2102 } | 2102 } |
2103 | 2103 |
2104 is_simple_api_call_ = true; | 2104 is_simple_api_call_ = true; |
2105 } | 2105 } |
2106 | 2106 |
2107 | 2107 |
2108 } } // namespace v8::internal | 2108 } } // namespace v8::internal |
OLD | NEW |