@@ -70,7 +70,10 @@ void php_v8_message_create_from_message(zval *return_value, php_v8_isolate_t *ph
70
70
if (!message->GetLineNumber (context).IsNothing ()) {
71
71
line_number = message->GetLineNumber (context).FromJust ();
72
72
}
73
- zend_update_property_long (this_ce, return_value, ZEND_STRL (" line_number" ), static_cast <zend_long>(line_number));
73
+
74
+ if (v8::Message::kNoLineNumberInfo != line_number) {
75
+ zend_update_property_long (this_ce, return_value, ZEND_STRL (" line_number" ), static_cast <zend_long>(line_number));
76
+ }
74
77
75
78
/* v8::Message::GetStartPosition */
76
79
zend_update_property_long (this_ce, return_value, ZEND_STRL (" start_position" ), static_cast <zend_long>(message->GetStartPosition ()));
@@ -85,20 +88,19 @@ void php_v8_message_create_from_message(zval *return_value, php_v8_isolate_t *ph
85
88
start_column = message->GetStartColumn (context).FromJust ();
86
89
}
87
90
88
- zend_update_property_long (this_ce, return_value, ZEND_STRL (" start_column" ), static_cast <zend_long>(start_column));
91
+ if (v8::Message::kNoColumnInfo != start_column) {
92
+ zend_update_property_long (this_ce, return_value, ZEND_STRL (" start_column" ), static_cast <zend_long>(start_column));
93
+ }
89
94
90
95
/* v8::Message::GetEndColumn */
91
96
/* NOTE: we don't use FromMaybe(v8::Message::kNoColumnInfo) due to static const (https://gcc.gnu.org/wiki/VerboseDiagnostics#missing_static_const_definition)*/
92
97
int end_column = v8::Message::kNoColumnInfo ;
93
98
if (!message->GetEndColumn (context).IsNothing ()) {
94
99
end_column = message->GetEndColumn (context).FromJust ();
95
100
}
96
- zend_update_property_long (this_ce, return_value, ZEND_STRL (" end_column" ), static_cast <zend_long>(end_column));
97
-
98
- /* v8::Message::IsSharedCrossOrigin */
99
- zend_update_property_bool (this_ce, return_value, ZEND_STRL (" is_shared_cross_origin" ), static_cast <zend_bool>(message->IsSharedCrossOrigin ()));
100
- /* v8::Message::IsOpaque */
101
- zend_update_property_bool (this_ce, return_value, ZEND_STRL (" is_opaque" ), static_cast <zend_bool>(message->IsOpaque ()));
101
+ if (v8::Message::kNoColumnInfo != end_column) {
102
+ zend_update_property_long (this_ce, return_value, ZEND_STRL (" end_column" ), static_cast <zend_long>(end_column));
103
+ }
102
104
}
103
105
104
106
@@ -110,19 +112,15 @@ static PHP_METHOD(Message, __construct) {
110
112
zend_string *resource_name = NULL ;
111
113
zval *stack_trace = NULL ;
112
114
113
- zend_long line_number = static_cast <zend_long>(v8::Message:: kNoLineNumberInfo ) ;
115
+ zend_long line_number = - 1 ;
114
116
zend_long start_position = -1 ;
115
- zend_long end_position = -1 ;
116
- zend_long start_column = static_cast <zend_long>(v8::Message:: kNoColumnInfo ) ;
117
- zend_long end_column = static_cast <zend_long>(v8::Message:: kNoColumnInfo ) ;
117
+ zend_long end_position = -1 ;
118
+ zend_long start_column = - 1 ;
119
+ zend_long end_column = - 1 ;
118
120
119
- zend_bool is_shared_cross_origin = ' \0 ' ;
120
- zend_bool is_opaque = ' \0 ' ;
121
-
122
- if (zend_parse_parameters (ZEND_NUM_ARGS (), " SSoSo|lllllbb" ,
121
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " SSoSo|lllll" ,
123
122
&message, &source_line, &script_origin, &resource_name, &stack_trace,
124
- &line_number, &start_position, &end_position, &start_column, &end_column,
125
- &is_shared_cross_origin, &is_opaque) == FAILURE) {
123
+ &line_number, &start_position, &end_position, &start_column, &end_column) == FAILURE) {
126
124
return ;
127
125
}
128
126
@@ -132,14 +130,21 @@ static PHP_METHOD(Message, __construct) {
132
130
zend_update_property_str (this_ce, getThis (), ZEND_STRL (" resource_name" ), resource_name);
133
131
zend_update_property (this_ce, getThis (), ZEND_STRL (" stack_trace" ), stack_trace);
134
132
135
- zend_update_property_long (this_ce, getThis (), ZEND_STRL (" line_number" ), line_number);
136
- zend_update_property_long (this_ce, getThis (), ZEND_STRL (" start_position" ), start_position);
137
- zend_update_property_long (this_ce, getThis (), ZEND_STRL (" end_position" ), end_position);
138
- zend_update_property_long (this_ce, getThis (), ZEND_STRL (" start_column" ), start_column);
139
- zend_update_property_long (this_ce, getThis (), ZEND_STRL (" end_column" ), end_column);
140
-
141
- zend_update_property_bool (this_ce, getThis (), ZEND_STRL (" is_shared_cross_origin" ), is_shared_cross_origin);
142
- zend_update_property_bool (this_ce, getThis (), ZEND_STRL (" is_opaque" ), is_opaque);
133
+ if (line_number > 0 ) {
134
+ zend_update_property_long (this_ce, getThis (), ZEND_STRL (" line_number" ), line_number);
135
+ }
136
+ if (start_position >= 0 ) {
137
+ zend_update_property_long (this_ce, getThis (), ZEND_STRL (" start_position" ), start_position);
138
+ }
139
+ if (end_position >= 0 ) {
140
+ zend_update_property_long (this_ce, getThis (), ZEND_STRL (" end_position" ), end_position);
141
+ }
142
+ if (start_column > 0 ) {
143
+ zend_update_property_long (this_ce, getThis (), ZEND_STRL (" start_column" ), start_column);
144
+ }
145
+ if (end_column > 0 ) {
146
+ zend_update_property_long (this_ce, getThis (), ZEND_STRL (" end_column" ), end_column);
147
+ }
143
148
}
144
149
145
150
static PHP_METHOD (Message, get)
@@ -252,41 +257,17 @@ static PHP_METHOD(Message, getEndColumn)
252
257
RETVAL_ZVAL (zend_read_property (this_ce, getThis (), ZEND_STRL (" end_column" ), 0 , &rv), 1 , 0 );
253
258
}
254
259
255
- static PHP_METHOD (Message, isSharedCrossOrigin)
256
- {
257
- zval rv;
258
-
259
- if (zend_parse_parameters_none () == FAILURE) {
260
- return ;
261
- }
262
-
263
- RETVAL_ZVAL (zend_read_property (this_ce, getThis (), ZEND_STRL (" is_shared_cross_origin" ), 0 , &rv), 1 , 0 );
264
- }
265
-
266
- static PHP_METHOD (Message, isOpaque)
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 (" is_opaque" ), 0 , &rv), 1 , 0 );
275
- }
276
-
277
260
PHP_V8_ZEND_BEGIN_ARG_WITH_CONSTRUCTOR_INFO_EX (arginfo___construct, 5 )
278
261
ZEND_ARG_TYPE_INFO(0 , message, IS_STRING, 0 )
279
262
ZEND_ARG_TYPE_INFO(0 , source_line, IS_STRING, 0 )
280
263
ZEND_ARG_OBJ_INFO(0 , script_origin, V8\\ScriptOrigin, 0 )
281
264
ZEND_ARG_TYPE_INFO(0 , resource_name, IS_STRING, 0 )
282
265
ZEND_ARG_OBJ_INFO(0 , stack_trace, V8\\StackTrace, 0 )
283
- ZEND_ARG_TYPE_INFO(0 , line_number, IS_LONG, 0 )
284
- ZEND_ARG_TYPE_INFO(0 , start_position, IS_LONG, 0 )
285
- ZEND_ARG_TYPE_INFO(0 , end_position, IS_LONG, 0 )
286
- ZEND_ARG_TYPE_INFO(0 , start_column, IS_LONG, 0 )
287
- ZEND_ARG_TYPE_INFO(0 , end_column, IS_LONG, 0 )
288
- ZEND_ARG_TYPE_INFO(0 , is_shared_cross_origin, _IS_BOOL, 0 )
289
- ZEND_ARG_TYPE_INFO(0 , is_opaque, _IS_BOOL, 0 )
266
+ ZEND_ARG_TYPE_INFO(0 , line_number, IS_LONG, 1 )
267
+ ZEND_ARG_TYPE_INFO(0 , start_position, IS_LONG, 1 )
268
+ ZEND_ARG_TYPE_INFO(0 , end_position, IS_LONG, 1 )
269
+ ZEND_ARG_TYPE_INFO(0 , start_column, IS_LONG, 1 )
270
+ ZEND_ARG_TYPE_INFO(0 , end_column, IS_LONG, 1 )
290
271
ZEND_END_ARG_INFO()
291
272
292
273
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_get, ZEND_RETURN_VALUE, 0 , IS_STRING, 0 )
@@ -304,25 +285,19 @@ ZEND_END_ARG_INFO()
304
285
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_getStackTrace, ZEND_RETURN_VALUE, 0 , V8\\StackTrace, 1 )
305
286
ZEND_END_ARG_INFO()
306
287
307
- PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_getLineNumber, ZEND_RETURN_VALUE, 0 , IS_LONG, 0 )
288
+ PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_getLineNumber, ZEND_RETURN_VALUE, 0 , IS_LONG, 1 )
308
289
ZEND_END_ARG_INFO()
309
290
310
- PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_getStartPosition, ZEND_RETURN_VALUE, 0 , IS_LONG, 0 )
291
+ PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_getStartPosition, ZEND_RETURN_VALUE, 0 , IS_LONG, 1 )
311
292
ZEND_END_ARG_INFO()
312
293
313
- PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_getEndPosition, ZEND_RETURN_VALUE, 0 , IS_LONG, 0 )
294
+ PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_getEndPosition, ZEND_RETURN_VALUE, 0 , IS_LONG, 1 )
314
295
ZEND_END_ARG_INFO()
315
296
316
- PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_getStartColumn, ZEND_RETURN_VALUE, 0 , IS_LONG, 0 )
297
+ PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_getStartColumn, ZEND_RETURN_VALUE, 0 , IS_LONG, 1 )
317
298
ZEND_END_ARG_INFO()
318
299
319
- PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_getEndColumn, ZEND_RETURN_VALUE, 0 , IS_LONG, 0 )
320
- ZEND_END_ARG_INFO()
321
-
322
- PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_isSharedCrossOrigin, ZEND_RETURN_VALUE, 0 , _IS_BOOL, 0 )
323
- ZEND_END_ARG_INFO()
324
-
325
- PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_isOpaque, ZEND_RETURN_VALUE, 0 , _IS_BOOL, 0 )
300
+ PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_getEndColumn, ZEND_RETURN_VALUE, 0 , IS_LONG, 1 )
326
301
ZEND_END_ARG_INFO()
327
302
328
303
@@ -338,8 +313,6 @@ static const zend_function_entry php_v8_message_methods[] = {
338
313
PHP_V8_ME (Message, getEndPosition, ZEND_ACC_PUBLIC)
339
314
PHP_V8_ME (Message, getStartColumn, ZEND_ACC_PUBLIC)
340
315
PHP_V8_ME (Message, getEndColumn, ZEND_ACC_PUBLIC)
341
- PHP_V8_ME (Message, isSharedCrossOrigin, ZEND_ACC_PUBLIC)
342
- PHP_V8_ME (Message, isOpaque, ZEND_ACC_PUBLIC)
343
316
344
317
PHP_FE_END
345
318
};
@@ -349,25 +322,18 @@ PHP_MINIT_FUNCTION (php_v8_message) {
349
322
INIT_NS_CLASS_ENTRY (ce, PHP_V8_NS, " Message" , php_v8_message_methods);
350
323
this_ce = zend_register_internal_class (&ce);
351
324
352
- zend_declare_class_constant_long (this_ce, ZEND_STRL (" kNoLineNumberInfo" ), static_cast <zend_long>(v8::Message::kNoLineNumberInfo ));
353
- zend_declare_class_constant_long (this_ce, ZEND_STRL (" kNoColumnInfo" ), static_cast <zend_long>(v8::Message::kNoColumnInfo ));
354
- zend_declare_class_constant_long (this_ce, ZEND_STRL (" kNoScriptIdInfo" ), static_cast <zend_long>(v8::Message::kNoLineNumberInfo ));
355
-
356
- zend_declare_property_string (this_ce, ZEND_STRL (" message" ), " " , ZEND_ACC_PRIVATE);
357
- zend_declare_property_null (this_ce, ZEND_STRL (" script_origin" ), ZEND_ACC_PRIVATE);
358
- zend_declare_property_string (this_ce, ZEND_STRL (" source_line" ), " " , ZEND_ACC_PRIVATE);
325
+ zend_declare_property_string (this_ce, ZEND_STRL (" message" ), " " , ZEND_ACC_PRIVATE);
326
+ zend_declare_property_null (this_ce, ZEND_STRL (" script_origin" ), ZEND_ACC_PRIVATE);
327
+ zend_declare_property_string (this_ce, ZEND_STRL (" source_line" ), " " , ZEND_ACC_PRIVATE);
359
328
zend_declare_property_string (this_ce, ZEND_STRL (" resource_name" ), " " , ZEND_ACC_PRIVATE);
360
- zend_declare_property_null (this_ce, ZEND_STRL (" stack_trace" ), ZEND_ACC_PRIVATE);
361
-
362
- zend_declare_property_long (this_ce, ZEND_STRL (" line_number" ), static_cast <zend_long>(v8::Message::kNoLineNumberInfo ), ZEND_ACC_PRIVATE);
363
- zend_declare_property_long (this_ce, ZEND_STRL (" start_position" ), -1 , ZEND_ACC_PRIVATE);
364
- zend_declare_property_long (this_ce, ZEND_STRL (" end_position" ), -1 , ZEND_ACC_PRIVATE);
329
+ zend_declare_property_null (this_ce, ZEND_STRL (" stack_trace" ), ZEND_ACC_PRIVATE);
365
330
366
- zend_declare_property_long (this_ce, ZEND_STRL (" start_column" ), static_cast <zend_long>(v8::Message::kNoColumnInfo ), ZEND_ACC_PRIVATE);
367
- zend_declare_property_long (this_ce, ZEND_STRL (" end_column" ), static_cast <zend_long>(v8::Message::kNoColumnInfo ), ZEND_ACC_PRIVATE);
331
+ zend_declare_property_null (this_ce, ZEND_STRL (" line_number" ), ZEND_ACC_PRIVATE);
332
+ zend_declare_property_null (this_ce, ZEND_STRL (" start_position" ), ZEND_ACC_PRIVATE);
333
+ zend_declare_property_null (this_ce, ZEND_STRL (" end_position" ), ZEND_ACC_PRIVATE);
368
334
369
- zend_declare_property_bool (this_ce, ZEND_STRL (" is_shared_cross_origin " ), static_cast <zend_bool>( false ), ZEND_ACC_PRIVATE);
370
- zend_declare_property_bool (this_ce, ZEND_STRL (" is_opaque " ), static_cast <zend_bool>( false ), ZEND_ACC_PRIVATE);
335
+ zend_declare_property_null (this_ce, ZEND_STRL (" start_column " ), ZEND_ACC_PRIVATE);
336
+ zend_declare_property_null (this_ce, ZEND_STRL (" end_column " ), ZEND_ACC_PRIVATE);
371
337
372
338
return SUCCESS;
373
339
}
0 commit comments