@@ -101,6 +101,8 @@ void php_v8_message_create_from_message(zval *return_value, php_v8_isolate_t *ph
101101 if (v8::Message::kNoColumnInfo != end_column) {
102102 zend_update_property_long (this_ce, return_value, ZEND_STRL (" end_column" ), static_cast <zend_long>(end_column));
103103 }
104+
105+ zend_update_property_long (this_ce, return_value, ZEND_STRL (" error_level" ), static_cast <zend_long>(message->ErrorLevel ()));
104106}
105107
106108
@@ -117,10 +119,11 @@ static PHP_METHOD(Message, __construct) {
117119 zend_long end_position = -1 ;
118120 zend_long start_column = -1 ;
119121 zend_long end_column = -1 ;
122+ zend_long error_level = -1 ;
120123
121- if (zend_parse_parameters (ZEND_NUM_ARGS (), " SSoSo|lllll " ,
124+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " SSoSo|llllll " ,
122125 &message, &source_line, &script_origin, &resource_name, &stack_trace,
123- &line_number, &start_position, &end_position, &start_column, &end_column) == FAILURE) {
126+ &line_number, &start_position, &end_position, &start_column, &end_column, &error_level ) == FAILURE) {
124127 return ;
125128 }
126129
@@ -145,6 +148,9 @@ static PHP_METHOD(Message, __construct) {
145148 if (end_column > 0 ) {
146149 zend_update_property_long (this_ce, getThis (), ZEND_STRL (" end_column" ), end_column);
147150 }
151+ if (end_column > 0 ) {
152+ zend_update_property_long (this_ce, getThis (), ZEND_STRL (" error_level" ), error_level);
153+ }
148154}
149155
150156static PHP_METHOD (Message, get)
@@ -257,6 +263,18 @@ static PHP_METHOD(Message, getEndColumn)
257263 RETVAL_ZVAL (zend_read_property (this_ce, getThis (), ZEND_STRL (" end_column" ), 0 , &rv), 1 , 0 );
258264}
259265
266+ static PHP_METHOD (Message, getErrorLevel)
267+ {
268+ zval rv;
269+
270+ if (zend_parse_parameters_none () == FAILURE) {
271+ return ;
272+ }
273+
274+ RETVAL_ZVAL (zend_read_property (this_ce, getThis (), ZEND_STRL (" error_level" ), 0 , &rv), 1 , 0 );
275+ }
276+
277+
260278PHP_V8_ZEND_BEGIN_ARG_WITH_CONSTRUCTOR_INFO_EX (arginfo___construct, 5 )
261279 ZEND_ARG_TYPE_INFO(0 , message, IS_STRING, 0 )
262280 ZEND_ARG_TYPE_INFO(0 , source_line, IS_STRING, 0 )
@@ -268,6 +286,7 @@ PHP_V8_ZEND_BEGIN_ARG_WITH_CONSTRUCTOR_INFO_EX(arginfo___construct, 5)
268286 ZEND_ARG_TYPE_INFO(0 , end_position, IS_LONG, 1 )
269287 ZEND_ARG_TYPE_INFO(0 , start_column, IS_LONG, 1 )
270288 ZEND_ARG_TYPE_INFO(0 , end_column, IS_LONG, 1 )
289+ ZEND_ARG_TYPE_INFO(0 , error_level, IS_LONG, 1 )
271290ZEND_END_ARG_INFO()
272291
273292PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_get, ZEND_RETURN_VALUE, 0 , IS_STRING, 0 )
@@ -300,6 +319,9 @@ ZEND_END_ARG_INFO()
300319PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_getEndColumn, ZEND_RETURN_VALUE, 0 , IS_LONG, 1 )
301320ZEND_END_ARG_INFO()
302321
322+ PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_getErrorLevel, ZEND_RETURN_VALUE, 0 , IS_LONG, 1 )
323+ ZEND_END_ARG_INFO()
324+
303325
304326static const zend_function_entry php_v8_message_methods[] = {
305327 PHP_V8_ME (Message, __construct, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
@@ -313,15 +335,24 @@ static const zend_function_entry php_v8_message_methods[] = {
313335 PHP_V8_ME (Message, getEndPosition, ZEND_ACC_PUBLIC)
314336 PHP_V8_ME (Message, getStartColumn, ZEND_ACC_PUBLIC)
315337 PHP_V8_ME (Message, getEndColumn, ZEND_ACC_PUBLIC)
338+ PHP_V8_ME (Message, getErrorLevel, ZEND_ACC_PUBLIC)
316339
317340 PHP_FE_END
318341};
319342
343+
320344PHP_MINIT_FUNCTION (php_v8_message) {
321345 zend_class_entry ce;
322346 INIT_NS_CLASS_ENTRY (ce, PHP_V8_NS, " Message" , php_v8_message_methods);
323347 this_ce = zend_register_internal_class (&ce);
324348
349+ zend_declare_class_constant_long (this_ce, ZEND_STRL (" ERROR_LEVEL_LOG" ), v8::Isolate::MessageErrorLevel::kMessageLog );
350+ zend_declare_class_constant_long (this_ce, ZEND_STRL (" ERROR_LEVEL_DEBUG" ), v8::Isolate::MessageErrorLevel::kMessageDebug );
351+ zend_declare_class_constant_long (this_ce, ZEND_STRL (" ERROR_LEVEL_INFO" ), v8::Isolate::MessageErrorLevel::kMessageInfo );
352+ zend_declare_class_constant_long (this_ce, ZEND_STRL (" ERROR_LEVEL_ERROR" ), v8::Isolate::MessageErrorLevel::kMessageError );
353+ zend_declare_class_constant_long (this_ce, ZEND_STRL (" ERROR_LEVEL_WARNING" ), v8::Isolate::MessageErrorLevel::kMessageWarning );
354+ zend_declare_class_constant_long (this_ce, ZEND_STRL (" ERROR_LEVEL_ALL" ), v8::Isolate::MessageErrorLevel::kMessageAll );
355+
325356 zend_declare_property_string (this_ce, ZEND_STRL (" message" ), " " , ZEND_ACC_PRIVATE);
326357 zend_declare_property_null (this_ce, ZEND_STRL (" script_origin" ), ZEND_ACC_PRIVATE);
327358 zend_declare_property_string (this_ce, ZEND_STRL (" source_line" ), " " , ZEND_ACC_PRIVATE);
@@ -334,6 +365,7 @@ PHP_MINIT_FUNCTION (php_v8_message) {
334365
335366 zend_declare_property_null (this_ce, ZEND_STRL (" start_column" ), ZEND_ACC_PRIVATE);
336367 zend_declare_property_null (this_ce, ZEND_STRL (" end_column" ), ZEND_ACC_PRIVATE);
368+ zend_declare_property_null (this_ce, ZEND_STRL (" error_level" ), ZEND_ACC_PRIVATE);
337369
338370 return SUCCESS;
339371}
0 commit comments