@@ -29,7 +29,6 @@ php_v8_return_value_t * php_v8_callback_info_create_from_info(zval *return_value
2929 zval tmp;
3030 zval arg_zv;
3131 php_v8_return_value_t *php_v8_return_value;
32- v8::Local<v8::Value> local_value;
3332
3433 v8::Isolate *isolate = args.GetIsolate ();
3534 v8::Local<v8::Context> context = isolate->GetEnteredContext ();
@@ -87,6 +86,19 @@ php_v8_return_value_t * php_v8_callback_info_create_from_info(zval *return_value
8786 return php_v8_return_value;
8887}
8988
89+ static PHP_METHOD (V8FunctionCallbackInfo, Length) {
90+ zval rv;
91+ zval *tmp;
92+
93+ if (zend_parse_parameters_none () == FAILURE) {
94+ return ;
95+ }
96+
97+ tmp = zend_read_property (this_ce, getThis (), ZEND_STRL (" arguments" ), 0 , &rv);
98+
99+ RETURN_LONG (zend_array_count (Z_ARRVAL_P (tmp)));
100+ }
101+
90102static PHP_METHOD (V8FunctionCallbackInfo, Arguments) {
91103 zval rv;
92104 zval *tmp;
@@ -124,6 +136,9 @@ static PHP_METHOD(V8FunctionCallbackInfo, IsConstructCall) {
124136}
125137
126138
139+ PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX (arginfo_v8_function_callback_info_Length, ZEND_RETURN_VALUE, 0 , IS_LONG, 0 )
140+ ZEND_END_ARG_INFO()
141+
127142PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_function_callback_info_Arguments, ZEND_RETURN_VALUE, 0 , IS_ARRAY, 0 )
128143ZEND_END_ARG_INFO()
129144
@@ -135,6 +150,7 @@ ZEND_END_ARG_INFO()
135150
136151
137152static const zend_function_entry php_v8_function_callback_info_methods[] = {
153+ PHP_ME (V8FunctionCallbackInfo, Length, arginfo_v8_function_callback_info_Length, ZEND_ACC_PUBLIC)
138154 PHP_ME (V8FunctionCallbackInfo, Arguments, arginfo_v8_function_callback_info_Arguments, ZEND_ACC_PUBLIC)
139155 PHP_ME (V8FunctionCallbackInfo, NewTarget, arginfo_v8_function_callback_info_NewTarget, ZEND_ACC_PUBLIC)
140156 PHP_ME (V8FunctionCallbackInfo, IsConstructCall, arginfo_v8_function_callback_info_IsConstructCall, ZEND_ACC_PUBLIC)
0 commit comments