Index: xfa/fxjse/util_inline.h |
diff --git a/xfa/fxjse/util_inline.h b/xfa/fxjse/util_inline.h |
index 336886b666ce4127c5e2e58f80e1e83508c8dac6..e61dc6aa803261731a2cd793ddd506128af5f740 100644 |
--- a/xfa/fxjse/util_inline.h |
+++ b/xfa/fxjse/util_inline.h |
@@ -20,7 +20,8 @@ |
hObject->SetAlignedPointerInInternalField(0, lpNewBinding); |
} |
static V8_INLINE void* FXJSE_RetrieveObjectBinding( |
- const v8::Local<v8::Object>& hJSObject) { |
+ const v8::Local<v8::Object>& hJSObject, |
+ CFXJSE_Class* lpClass = NULL) { |
ASSERT(!hJSObject.IsEmpty()); |
if (!hJSObject->IsObject()) { |
return NULL; |
@@ -36,6 +37,14 @@ |
return NULL; |
} |
} |
+ if (lpClass) { |
+ v8::Local<v8::FunctionTemplate> hClass = |
+ v8::Local<v8::FunctionTemplate>::New( |
+ lpClass->GetContext()->GetRuntime(), lpClass->GetTemplate()); |
+ if (!hClass->HasInstance(hObject)) { |
+ return NULL; |
+ } |
+ } |
return hObject->GetAlignedPointerFromInternalField(0); |
} |