summaryrefslogtreecommitdiffstats
path: root/extensions/renderer/module_system.cc
diff options
context:
space:
mode:
authorjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-22 15:00:43 +0000
committerjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-22 15:00:43 +0000
commit80b0c8c1adf1991387a038ec157f09b6c81caa45 (patch)
tree01f7e24745f91c8d72e0bdd009c4a2a6901aebfd /extensions/renderer/module_system.cc
parent44d7c9d4cbbe8e74c1089fc7334c33d387c6d1ac (diff)
downloadchromium_src-80b0c8c1adf1991387a038ec157f09b6c81caa45.zip
chromium_src-80b0c8c1adf1991387a038ec157f09b6c81caa45.tar.gz
chromium_src-80b0c8c1adf1991387a038ec157f09b6c81caa45.tar.bz2
PropertyCallbackInfo::This should be a primitive value
It's possible to take any callback and invoke it e.g. on a string. In this case, "This" is a Value and not an Object. Update extension callsites to explicitly check for Object. BUG=v8:3274 R=yangguo@chromium.org TBR=kalman@chromium.org Review URL: https://codereview.chromium.org/247043003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265253 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'extensions/renderer/module_system.cc')
-rw-r--r--extensions/renderer/module_system.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/extensions/renderer/module_system.cc b/extensions/renderer/module_system.cc
index 98daa20..a10fabd 100644
--- a/extensions/renderer/module_system.cc
+++ b/extensions/renderer/module_system.cc
@@ -435,9 +435,14 @@ void ModuleSystem::LazyFieldGetterInner(
// Delete the getter and set this field to |new_field| so the same object is
// returned every time a certain API is accessed.
- v8::Handle<v8::Object> object = info.This();
- object->Delete(property);
- object->Set(property, new_field);
+ v8::Handle<v8::Value> val = info.This();
+ if (val->IsObject()) {
+ v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(val);
+ object->Delete(property);
+ object->Set(property, new_field);
+ } else {
+ NOTREACHED();
+ }
info.GetReturnValue().Set(new_field);
}