@@ -60,6 +60,9 @@ void php_v8_stack_frame_create_from_stack_frame(v8::Isolate *isolate, zval *retu
6060
6161 /* v8::StackFrame::IsConstructor */
6262 zend_update_property_bool (this_ce, return_value, ZEND_STRL (" is_constructor" ), static_cast <zend_bool >(frame->IsConstructor ()));
63+
64+ /* v8::StackFrame::IsWasm */
65+ zend_update_property_bool (this_ce, return_value, ZEND_STRL (" is_wasm" ), static_cast <zend_bool >(frame->IsWasm ()));
6366}
6467
6568static PHP_METHOD (StackFrame, __construct) {
@@ -73,11 +76,12 @@ static PHP_METHOD(StackFrame, __construct) {
7376
7477 zend_bool is_eval = ' \0 ' ;
7578 zend_bool is_constructor = ' \0 ' ;
79+ zend_bool is_wasm = ' \0 ' ;
7680
77- if (zend_parse_parameters (ZEND_NUM_ARGS (), " |lllSSSbb " ,
81+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " |lllSSSbbb " ,
7882 &line_number, &column, &script_id,
7983 &script_name, &script_name_or_source_url, &function_name,
80- &is_eval, &is_constructor) == FAILURE) {
84+ &is_eval, &is_constructor, &is_wasm ) == FAILURE) {
8185 return ;
8286 }
8387
@@ -105,6 +109,7 @@ static PHP_METHOD(StackFrame, __construct) {
105109
106110 zend_update_property_bool (this_ce, getThis (), ZEND_STRL (" is_eval" ), is_eval);
107111 zend_update_property_bool (this_ce, getThis (), ZEND_STRL (" is_constructor" ), is_constructor);
112+ zend_update_property_bool (this_ce, getThis (), ZEND_STRL (" is_wasm" ), is_wasm);
108113}
109114
110115static PHP_METHOD (StackFrame, getLineNumber) {
@@ -187,6 +192,17 @@ static PHP_METHOD(StackFrame, isConstructor) {
187192 RETVAL_ZVAL (zend_read_property (this_ce, getThis (), ZEND_STRL (" is_constructor" ), 0 , &rv), 1 , 0 );
188193}
189194
195+ static PHP_METHOD (StackFrame, isWasm) {
196+ zval rv;
197+
198+ if (zend_parse_parameters_none () == FAILURE) {
199+ return ;
200+ }
201+
202+ RETVAL_ZVAL (zend_read_property (this_ce, getThis (), ZEND_STRL (" is_wasm" ), 0 , &rv), 1 , 0 );
203+ }
204+
205+
190206PHP_V8_ZEND_BEGIN_ARG_WITH_CONSTRUCTOR_INFO_EX (arginfo___construct, 0 )
191207 ZEND_ARG_TYPE_INFO(0 , line_number, IS_LONG, 1 )
192208 ZEND_ARG_TYPE_INFO(0 , column, IS_LONG, 1 )
@@ -196,6 +212,7 @@ PHP_V8_ZEND_BEGIN_ARG_WITH_CONSTRUCTOR_INFO_EX(arginfo___construct, 0)
196212 ZEND_ARG_TYPE_INFO(0 , function_name, IS_STRING, 0 )
197213 ZEND_ARG_TYPE_INFO(0 , is_eval, _IS_BOOL, 0 )
198214 ZEND_ARG_TYPE_INFO(0 , is_constructor, _IS_BOOL, 0 )
215+ ZEND_ARG_TYPE_INFO(0 , is_wasm, _IS_BOOL, 0 )
199216ZEND_END_ARG_INFO()
200217
201218PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_getLineNumber, ZEND_RETURN_VALUE, 0 , IS_LONG, 1 )
@@ -222,6 +239,9 @@ ZEND_END_ARG_INFO()
222239PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_isConstructor, ZEND_RETURN_VALUE, 0 , _IS_BOOL, 0 )
223240ZEND_END_ARG_INFO()
224241
242+ PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_isWasm, ZEND_RETURN_VALUE, 0 , _IS_BOOL, 0 )
243+ ZEND_END_ARG_INFO()
244+
225245
226246static const zend_function_entry php_v8_stack_frame_methods[] = {
227247 PHP_V8_ME (StackFrame, __construct, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
@@ -233,6 +253,7 @@ static const zend_function_entry php_v8_stack_frame_methods[] = {
233253 PHP_V8_ME (StackFrame, getFunctionName, ZEND_ACC_PUBLIC)
234254 PHP_V8_ME (StackFrame, isEval, ZEND_ACC_PUBLIC)
235255 PHP_V8_ME (StackFrame, isConstructor, ZEND_ACC_PUBLIC)
256+ PHP_V8_ME (StackFrame, isWasm, ZEND_ACC_PUBLIC)
236257
237258 PHP_FE_END
238259};
@@ -253,6 +274,7 @@ PHP_MINIT_FUNCTION (php_v8_stack_frame) {
253274
254275 zend_declare_property_bool (this_ce, ZEND_STRL (" is_eval" ), static_cast <zend_bool>(false ), ZEND_ACC_PRIVATE);
255276 zend_declare_property_bool (this_ce, ZEND_STRL (" is_constructor" ), static_cast <zend_bool>(false ), ZEND_ACC_PRIVATE);
277+ zend_declare_property_bool (this_ce, ZEND_STRL (" is_wasm" ), static_cast <zend_bool>(false ), ZEND_ACC_PRIVATE);
256278
257279 return SUCCESS;
258280}
0 commit comments