Skip to content
This repository was archived by the owner on Mar 29, 2024. It is now read-only.

Commit e526244

Browse files
committed
Add V8\Value::IsNullOrUndefinedl() method
v8/v8@09167bf
1 parent d6bfbc0 commit e526244

30 files changed

+86
-29
lines changed

src/php_v8_value.cc

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,17 @@ static PHP_METHOD(V8Value, IsNull) {
369369
RETURN_BOOL(php_v8_value_get_value_local(isolate, php_v8_value)->IsNull());
370370
}
371371

372+
static PHP_METHOD(V8Value, IsNullOrUndefined) {
373+
if (zend_parse_parameters_none() == FAILURE) {
374+
return;
375+
}
376+
377+
PHP_V8_VALUE_FETCH_WITH_CHECK(getThis(), php_v8_value);
378+
PHP_V8_ENTER_STORED_ISOLATE(php_v8_value);
379+
380+
RETURN_BOOL(php_v8_value_get_value_local(isolate, php_v8_value)->IsNullOrUndefined());
381+
}
382+
372383
static PHP_METHOD(V8Value, IsTrue) {
373384
if (zend_parse_parameters_none() == FAILURE) {
374385
return;
@@ -1086,6 +1097,8 @@ PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_value_IsUndefined,
10861097
ZEND_END_ARG_INFO()
10871098
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_value_IsNull, ZEND_RETURN_VALUE, 0, _IS_BOOL, 0)
10881099
ZEND_END_ARG_INFO()
1100+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_value_IsNullOrUndefined, ZEND_RETURN_VALUE, 0, _IS_BOOL, 0)
1101+
ZEND_END_ARG_INFO()
10891102
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_value_IsTrue, ZEND_RETURN_VALUE, 0, _IS_BOOL, 0)
10901103
ZEND_END_ARG_INFO()
10911104
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_value_IsFalse, ZEND_RETURN_VALUE, 0, _IS_BOOL, 0)
@@ -1209,6 +1222,7 @@ static const zend_function_entry php_v8_value_methods[] = {
12091222

12101223
PHP_ME(V8Value, IsUndefined, arginfo_v8_value_IsUndefined, ZEND_ACC_PUBLIC)
12111224
PHP_ME(V8Value, IsNull, arginfo_v8_value_IsNull, ZEND_ACC_PUBLIC)
1225+
PHP_ME(V8Value, IsNullOrUndefined, arginfo_v8_value_IsNullOrUndefined, ZEND_ACC_PUBLIC)
12121226
PHP_ME(V8Value, IsTrue, arginfo_v8_value_IsTrue, ZEND_ACC_PUBLIC)
12131227
PHP_ME(V8Value, IsFalse, arginfo_v8_value_IsFalse, ZEND_ACC_PUBLIC)
12141228
PHP_ME(V8Value, IsName, arginfo_v8_value_IsName, ZEND_ACC_PUBLIC)

tests/V8ArrayObject.phpt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ V8\ArrayObject::CreationContext() matches expected value
129129
Converters:
130130
-----------
131131
V8\ArrayObject(V8\Value)->ToBoolean():
132-
object(V8\BooleanValue)#98 (1) {
132+
object(V8\BooleanValue)#99 (1) {
133133
["isolate":"V8\Value":private]=>
134134
object(V8\Isolate)#3 (5) {
135135
["snapshot":"V8\Isolate":private]=>
@@ -145,7 +145,7 @@ V8\ArrayObject(V8\Value)->ToBoolean():
145145
}
146146
}
147147
V8\ArrayObject(V8\Value)->ToNumber():
148-
object(V8\NumberValue)#98 (1) {
148+
object(V8\NumberValue)#99 (1) {
149149
["isolate":"V8\Value":private]=>
150150
object(V8\Isolate)#3 (5) {
151151
["snapshot":"V8\Isolate":private]=>
@@ -161,7 +161,7 @@ V8\ArrayObject(V8\Value)->ToNumber():
161161
}
162162
}
163163
V8\ArrayObject(V8\Value)->ToString():
164-
object(V8\StringValue)#98 (1) {
164+
object(V8\StringValue)#99 (1) {
165165
["isolate":"V8\Value":private]=>
166166
object(V8\Isolate)#3 (5) {
167167
["snapshot":"V8\Isolate":private]=>
@@ -177,7 +177,7 @@ V8\ArrayObject(V8\Value)->ToString():
177177
}
178178
}
179179
V8\ArrayObject(V8\Value)->ToDetailString():
180-
object(V8\StringValue)#98 (1) {
180+
object(V8\StringValue)#99 (1) {
181181
["isolate":"V8\Value":private]=>
182182
object(V8\Isolate)#3 (5) {
183183
["snapshot":"V8\Isolate":private]=>
@@ -246,7 +246,7 @@ V8\ArrayObject(V8\Value)->ToObject():
246246
}
247247
}
248248
V8\ArrayObject(V8\Value)->ToInteger():
249-
object(V8\NumberValue)#98 (1) {
249+
object(V8\NumberValue)#99 (1) {
250250
["isolate":"V8\Value":private]=>
251251
object(V8\Isolate)#3 (5) {
252252
["snapshot":"V8\Isolate":private]=>
@@ -262,7 +262,7 @@ V8\ArrayObject(V8\Value)->ToInteger():
262262
}
263263
}
264264
V8\ArrayObject(V8\Value)->ToUint32():
265-
object(V8\NumberValue)#98 (1) {
265+
object(V8\NumberValue)#99 (1) {
266266
["isolate":"V8\Value":private]=>
267267
object(V8\Isolate)#3 (5) {
268268
["snapshot":"V8\Isolate":private]=>
@@ -278,7 +278,7 @@ V8\ArrayObject(V8\Value)->ToUint32():
278278
}
279279
}
280280
V8\ArrayObject(V8\Value)->ToInt32():
281-
object(V8\NumberValue)#98 (1) {
281+
object(V8\NumberValue)#99 (1) {
282282
["isolate":"V8\Value":private]=>
283283
object(V8\Isolate)#3 (5) {
284284
["snapshot":"V8\Isolate":private]=>

tests/V8Boolean.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ V8\BooleanValue(V8\Value)->TypeOf(): V8\StringValue->Value(): string(7) "boolean
8585

8686
V8\BooleanValue(V8\Value)->IsUndefined(): bool(false)
8787
V8\BooleanValue(V8\Value)->IsNull(): bool(false)
88+
V8\BooleanValue(V8\Value)->IsNullOrUndefined(): bool(false)
8889
V8\BooleanValue(V8\Value)->IsTrue(): bool(true)
8990
V8\BooleanValue(V8\Value)->IsFalse(): bool(false)
9091
V8\BooleanValue(V8\Value)->IsName(): bool(false)

tests/V8BooleanObject.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ V8\BooleanObject(V8\ObjectValue)->IsCallable(): bool(false)
127127
V8\BooleanObject(V8\ObjectValue)->IsConstructor(): bool(false)
128128
V8\BooleanObject(V8\Value)->IsUndefined(): bool(false)
129129
V8\BooleanObject(V8\Value)->IsNull(): bool(false)
130+
V8\BooleanObject(V8\Value)->IsNullOrUndefined(): bool(false)
130131
V8\BooleanObject(V8\Value)->IsTrue(): bool(false)
131132
V8\BooleanObject(V8\Value)->IsFalse(): bool(false)
132133
V8\BooleanObject(V8\Value)->IsName(): bool(false)
@@ -161,6 +162,7 @@ V8\BooleanObject(V8\ObjectValue)->IsCallable(): bool(false)
161162
V8\BooleanObject(V8\ObjectValue)->IsConstructor(): bool(false)
162163
V8\BooleanObject(V8\Value)->IsUndefined(): bool(false)
163164
V8\BooleanObject(V8\Value)->IsNull(): bool(false)
165+
V8\BooleanObject(V8\Value)->IsNullOrUndefined(): bool(false)
164166
V8\BooleanObject(V8\Value)->IsTrue(): bool(false)
165167
V8\BooleanObject(V8\Value)->IsFalse(): bool(false)
166168
V8\BooleanObject(V8\Value)->IsName(): bool(false)

tests/V8DateObject.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ V8\DateObject(V8\ObjectValue)->IsCallable(): bool(false)
185185
V8\DateObject(V8\ObjectValue)->IsConstructor(): bool(false)
186186
V8\DateObject(V8\Value)->IsUndefined(): bool(false)
187187
V8\DateObject(V8\Value)->IsNull(): bool(false)
188+
V8\DateObject(V8\Value)->IsNullOrUndefined(): bool(false)
188189
V8\DateObject(V8\Value)->IsTrue(): bool(false)
189190
V8\DateObject(V8\Value)->IsFalse(): bool(false)
190191
V8\DateObject(V8\Value)->IsName(): bool(false)

tests/V8Exception_CreateMessage.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ V8\ObjectValue->IsCallable(): bool(false)
157157
V8\ObjectValue->IsConstructor(): bool(false)
158158
V8\ObjectValue(V8\Value)->IsUndefined(): bool(false)
159159
V8\ObjectValue(V8\Value)->IsNull(): bool(false)
160+
V8\ObjectValue(V8\Value)->IsNullOrUndefined(): bool(false)
160161
V8\ObjectValue(V8\Value)->IsTrue(): bool(false)
161162
V8\ObjectValue(V8\Value)->IsFalse(): bool(false)
162163
V8\ObjectValue(V8\Value)->IsName(): bool(false)

tests/V8Exception_Error.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ V8\ObjectValue->IsCallable(): bool(false)
108108
V8\ObjectValue->IsConstructor(): bool(false)
109109
V8\ObjectValue(V8\Value)->IsUndefined(): bool(false)
110110
V8\ObjectValue(V8\Value)->IsNull(): bool(false)
111+
V8\ObjectValue(V8\Value)->IsNullOrUndefined(): bool(false)
111112
V8\ObjectValue(V8\Value)->IsTrue(): bool(false)
112113
V8\ObjectValue(V8\Value)->IsFalse(): bool(false)
113114
V8\ObjectValue(V8\Value)->IsName(): bool(false)

tests/V8Exception_RangeError.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ V8\ObjectValue->IsCallable(): bool(false)
109109
V8\ObjectValue->IsConstructor(): bool(false)
110110
V8\ObjectValue(V8\Value)->IsUndefined(): bool(false)
111111
V8\ObjectValue(V8\Value)->IsNull(): bool(false)
112+
V8\ObjectValue(V8\Value)->IsNullOrUndefined(): bool(false)
112113
V8\ObjectValue(V8\Value)->IsTrue(): bool(false)
113114
V8\ObjectValue(V8\Value)->IsFalse(): bool(false)
114115
V8\ObjectValue(V8\Value)->IsName(): bool(false)

tests/V8Exception_ReferenceError.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ V8\ObjectValue->IsCallable(): bool(false)
109109
V8\ObjectValue->IsConstructor(): bool(false)
110110
V8\ObjectValue(V8\Value)->IsUndefined(): bool(false)
111111
V8\ObjectValue(V8\Value)->IsNull(): bool(false)
112+
V8\ObjectValue(V8\Value)->IsNullOrUndefined(): bool(false)
112113
V8\ObjectValue(V8\Value)->IsTrue(): bool(false)
113114
V8\ObjectValue(V8\Value)->IsFalse(): bool(false)
114115
V8\ObjectValue(V8\Value)->IsName(): bool(false)

tests/V8Exception_SyntaxError.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ V8\ObjectValue->IsCallable(): bool(false)
109109
V8\ObjectValue->IsConstructor(): bool(false)
110110
V8\ObjectValue(V8\Value)->IsUndefined(): bool(false)
111111
V8\ObjectValue(V8\Value)->IsNull(): bool(false)
112+
V8\ObjectValue(V8\Value)->IsNullOrUndefined(): bool(false)
112113
V8\ObjectValue(V8\Value)->IsTrue(): bool(false)
113114
V8\ObjectValue(V8\Value)->IsFalse(): bool(false)
114115
V8\ObjectValue(V8\Value)->IsName(): bool(false)

0 commit comments

Comments
 (0)