@@ -67,7 +67,13 @@ static PHP_METHOD(Proxy, getTarget) {
6767 PHP_V8_ENTER_STORED_ISOLATE (php_v8_value);
6868 PHP_V8_ENTER_STORED_CONTEXT (php_v8_value);
6969
70- v8::Local<v8::Object> local_target = php_v8_value_get_local_as<v8::Proxy>(php_v8_value)->GetTarget ();
70+ v8::Local<v8::Value> local_target = php_v8_value_get_local_as<v8::Proxy>(php_v8_value)->GetTarget ();
71+
72+ PHP_V8_THROW_VALUE_EXCEPTION_WHEN_UNDEFINED (local_target, " Failed to get Proxy target" ); // this should never happen
73+
74+ if (local_target->IsNull ()) {
75+ RETURN_NULL ();
76+ }
7177
7278 php_v8_get_or_create_value (return_value, local_target, php_v8_value->php_v8_isolate );
7379}
@@ -83,7 +89,10 @@ static PHP_METHOD(Proxy, getHandler) {
8389
8490 v8::Local<v8::Value> local_handler = php_v8_value_get_local_as<v8::Proxy>(php_v8_value)->GetHandler ();
8591
86- if (local_handler->IsUndefined ()) {
92+ // this should never happen
93+ PHP_V8_THROW_VALUE_EXCEPTION_WHEN_UNDEFINED (local_handler, " Failed to get Proxy handler" ); // this should never happen
94+
95+ if (local_handler->IsNull ()) {
8796 RETURN_NULL ();
8897 }
8998
@@ -121,10 +130,10 @@ PHP_V8_ZEND_BEGIN_ARG_WITH_CONSTRUCTOR_INFO_EX(arginfo___construct, 2)
121130 ZEND_ARG_OBJ_INFO(0 , handler, V8\\ObjectValue, 0 )
122131ZEND_END_ARG_INFO()
123132
124- PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_getTarget, ZEND_RETURN_VALUE, 0 , V8\\ObjectValue, 0 )
133+ PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_getTarget, ZEND_RETURN_VALUE, 0 , V8\\ObjectValue, 1 )
125134ZEND_END_ARG_INFO()
126135
127- PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_getHandler, ZEND_RETURN_VALUE, 0 , V8\\Value, 0 )
136+ PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_getHandler, ZEND_RETURN_VALUE, 0 , V8\\ObjectValue, 1 )
128137ZEND_END_ARG_INFO()
129138
130139PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_isRevoked, ZEND_RETURN_VALUE, 0 , _IS_BOOL, 0 )
0 commit comments