@@ -67,7 +67,13 @@ static PHP_METHOD(Proxy, getTarget) {
67
67
PHP_V8_ENTER_STORED_ISOLATE (php_v8_value);
68
68
PHP_V8_ENTER_STORED_CONTEXT (php_v8_value);
69
69
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
+ }
71
77
72
78
php_v8_get_or_create_value (return_value, local_target, php_v8_value->php_v8_isolate );
73
79
}
@@ -83,7 +89,10 @@ static PHP_METHOD(Proxy, getHandler) {
83
89
84
90
v8::Local<v8::Value> local_handler = php_v8_value_get_local_as<v8::Proxy>(php_v8_value)->GetHandler ();
85
91
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 ()) {
87
96
RETURN_NULL ();
88
97
}
89
98
@@ -121,10 +130,10 @@ PHP_V8_ZEND_BEGIN_ARG_WITH_CONSTRUCTOR_INFO_EX(arginfo___construct, 2)
121
130
ZEND_ARG_OBJ_INFO(0 , handler, V8\\ObjectValue, 0 )
122
131
ZEND_END_ARG_INFO()
123
132
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 )
125
134
ZEND_END_ARG_INFO()
126
135
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 )
128
137
ZEND_END_ARG_INFO()
129
138
130
139
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_isRevoked, ZEND_RETURN_VALUE, 0 , _IS_BOOL, 0 )
0 commit comments