OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2007-2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2007-2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
192 if (cssPropertyInfo(v8Name.As<v8::String>(), info.GetIsolate())) { | 192 if (cssPropertyInfo(v8Name.As<v8::String>(), info.GetIsolate())) { |
193 v8SetReturnValueInt(info, 0); | 193 v8SetReturnValueInt(info, 0); |
194 return; | 194 return; |
195 } | 195 } |
196 } | 196 } |
197 | 197 |
198 void V8CSSStyleDeclaration::namedPropertyGetterCustom(v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) | 198 void V8CSSStyleDeclaration::namedPropertyGetterCustom(v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) |
199 { | 199 { |
200 if (!name->IsString()) | 200 if (!name->IsString()) |
201 return; | 201 return; |
202 auto nameString = name.As<v8::String>(); | |
203 auto context = info.GetIsolate()->GetCurrentContext(); | |
202 // First look for API defined attributes on the style declaration object. | 204 // First look for API defined attributes on the style declaration object. |
203 if (v8CallBoolean(info.Holder()->HasRealNamedCallbackProperty(info.GetIsolat e()->GetCurrentContext(), name.As<v8::String>()))) | 205 if (v8CallBoolean(info.Holder()->HasRealNamedCallbackProperty(context, nameS tring))) |
204 return; | 206 return; |
207 { | |
208 v8::Local<v8::Value> returnValue; | |
209 v8::TryCatch tryCatch; | |
210 if (v8Call(info.Holder()->GetRealNamedPropertyInPrototypeChain(context, nameString), returnValue, tryCatch)) { | |
bashi
2015/04/07 08:44:56
I read the following comment on GetRealNamedProper
Yuki
2015/04/07 09:29:00
I think that it is an intended behavior that GetRe
| |
211 v8SetReturnValue(info, returnValue); | |
212 return; | |
213 } | |
214 if (tryCatch.HasCaught()) { | |
215 tryCatch.ReThrow(); | |
216 return; | |
217 } | |
218 } | |
205 | 219 |
206 // Search the style declaration. | 220 // Search the style declaration. |
207 CSSPropertyInfo* propInfo = cssPropertyInfo(name.As<v8::String>(), info.GetI solate()); | 221 CSSPropertyInfo* propInfo = cssPropertyInfo(name.As<v8::String>(), info.GetI solate()); |
208 | 222 |
209 // Do not handle non-property names. | 223 // Do not handle non-property names. |
210 if (!propInfo) | 224 if (!propInfo) |
211 return; | 225 return; |
212 | 226 |
213 CSSStyleDeclaration* impl = V8CSSStyleDeclaration::toImpl(info.Holder()); | 227 CSSStyleDeclaration* impl = V8CSSStyleDeclaration::toImpl(info.Holder()); |
214 RefPtrWillBeRawPtr<CSSValue> cssValue = impl->getPropertyCSSValueInternal(st atic_cast<CSSPropertyID>(propInfo->propID)); | 228 RefPtrWillBeRawPtr<CSSValue> cssValue = impl->getPropertyCSSValueInternal(st atic_cast<CSSPropertyID>(propInfo->propID)); |
(...skipping 19 matching lines...) Expand all Loading... | |
234 ExceptionState exceptionState(ExceptionState::SetterContext, getPropertyName (static_cast<CSSPropertyID>(propInfo->propID)), "CSSStyleDeclaration", info.Hold er(), info.GetIsolate()); | 248 ExceptionState exceptionState(ExceptionState::SetterContext, getPropertyName (static_cast<CSSPropertyID>(propInfo->propID)), "CSSStyleDeclaration", info.Hold er(), info.GetIsolate()); |
235 impl->setPropertyInternal(static_cast<CSSPropertyID>(propInfo->propID), prop ertyValue, false, exceptionState); | 249 impl->setPropertyInternal(static_cast<CSSPropertyID>(propInfo->propID), prop ertyValue, false, exceptionState); |
236 | 250 |
237 if (exceptionState.throwIfNeeded()) | 251 if (exceptionState.throwIfNeeded()) |
238 return; | 252 return; |
239 | 253 |
240 v8SetReturnValue(info, value); | 254 v8SetReturnValue(info, value); |
241 } | 255 } |
242 | 256 |
243 } // namespace blink | 257 } // namespace blink |
OLD | NEW |