Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Mar 29, 2024. It is now read-only.

Commit 2ad2c3e

Browse files
committed
Remove V8\ObjectValue::{Get,Set,Has,Delete,CreateDataProperty}Indexed methods
While v8 provides uint32_t alternatives, PHP does not have methods/functions overloading, so taking into account name hiding in C++ and LSP, it becomes PITA to maintain this part of v8. So to prevent any ambiguity for V8 PHP API end-users, I decided to remove this methods.
1 parent 24f6706 commit 2ad2c3e

13 files changed

+66
-343
lines changed

‎src/php_v8_object.cc‎

Lines changed: 0 additions & 206 deletions
Original file line numberDiff line numberDiff line change
@@ -208,41 +208,6 @@ static PHP_METHOD(V8Object, Set) {
208208
RETURN_BOOL(maybe_res.FromJust());
209209
}
210210

211-
static PHP_METHOD(V8Object, SetIndex) {
212-
zval *php_v8_context_zv;
213-
zend_long index;
214-
zval *php_v8_value_zv;
215-
216-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "olo", &php_v8_context_zv, &index, &php_v8_value_zv) == FAILURE) {
217-
return;
218-
}
219-
220-
PHP_V8_CHECK_UINT32_RANGE(index, "Index is out of range (should be valid uint32 value)");
221-
222-
PHP_V8_VALUE_FETCH_WITH_CHECK(getThis(), php_v8_value);
223-
PHP_V8_VALUE_FETCH_WITH_CHECK(php_v8_value_zv, php_v8_value_value_to_set);
224-
PHP_V8_CONTEXT_FETCH_WITH_CHECK(php_v8_context_zv, php_v8_context);
225-
226-
PHP_V8_DATA_ISOLATES_CHECK(php_v8_value, php_v8_context);
227-
PHP_V8_DATA_ISOLATES_CHECK(php_v8_value, php_v8_value_value_to_set);
228-
229-
PHP_V8_ENTER_STORED_ISOLATE(php_v8_value);
230-
PHP_V8_ENTER_CONTEXT(php_v8_context);
231-
232-
v8::Local<v8::Object> local_obj = php_v8_value_get_object_local(isolate, php_v8_value);
233-
v8::Local<v8::Value> local_value_to_set = php_v8_value_get_value_local(isolate, php_v8_value_value_to_set);
234-
235-
PHP_V8_TRY_CATCH(isolate);
236-
PHP_V8_INIT_ISOLATE_LIMITS_ON_OBJECT_VALUE(php_v8_value);
237-
238-
v8::Maybe<bool> maybe_res = local_obj->Set(context, static_cast<uint32_t>(index), local_value_to_set);
239-
240-
PHP_V8_MAYBE_CATCH(php_v8_context, try_catch);
241-
PHP_V8_THROW_EXCEPTION_WHEN_NOTHING(maybe_res, "Failed to set");
242-
243-
RETURN_BOOL(maybe_res.FromJust());
244-
}
245-
246211
static PHP_METHOD(V8Object, CreateDataProperty) {
247212
zval *php_v8_context_zv;
248213
zval *php_v8_key_or_index_zv;
@@ -279,41 +244,6 @@ static PHP_METHOD(V8Object, CreateDataProperty) {
279244
RETURN_BOOL(maybe_res.FromJust());
280245
}
281246

282-
static PHP_METHOD(V8Object, CreateDataPropertyIndex) {
283-
zval *php_v8_context_zv;
284-
zend_long index;
285-
zval *php_v8_value_zv;
286-
287-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "olo", &php_v8_context_zv, &index, &php_v8_value_zv) == FAILURE) {
288-
return;
289-
}
290-
291-
PHP_V8_CHECK_UINT32_RANGE(index, "Index is out of range (should be valid uint32 value)");
292-
293-
PHP_V8_VALUE_FETCH_WITH_CHECK(getThis(), php_v8_value);
294-
PHP_V8_VALUE_FETCH_WITH_CHECK(php_v8_value_zv, php_v8_value_value_to_set);
295-
PHP_V8_CONTEXT_FETCH_WITH_CHECK(php_v8_context_zv, php_v8_context);
296-
297-
PHP_V8_DATA_ISOLATES_CHECK(php_v8_value, php_v8_context);
298-
PHP_V8_DATA_ISOLATES_CHECK(php_v8_value, php_v8_value_value_to_set);
299-
300-
PHP_V8_ENTER_STORED_ISOLATE(php_v8_value);
301-
PHP_V8_ENTER_CONTEXT(php_v8_context);
302-
303-
v8::Local<v8::Object> local_obj = php_v8_value_get_object_local(isolate, php_v8_value);
304-
v8::Local<v8::Value> local_value_to_set = php_v8_value_get_value_local(isolate, php_v8_value_value_to_set);
305-
306-
PHP_V8_TRY_CATCH(isolate);
307-
PHP_V8_INIT_ISOLATE_LIMITS_ON_OBJECT_VALUE(php_v8_value);
308-
309-
v8::Maybe<bool> maybe_res = local_obj->CreateDataProperty(context, static_cast<uint32_t>(index), local_value_to_set);
310-
311-
PHP_V8_MAYBE_CATCH(php_v8_context, try_catch);
312-
PHP_V8_THROW_EXCEPTION_WHEN_NOTHING(maybe_res, "Failed to create data property");
313-
314-
RETURN_BOOL(maybe_res.FromJust());
315-
}
316-
317247
static PHP_METHOD(V8Object, DefineOwnProperty) {
318248
zval *php_v8_context_zv;
319249
zval *php_v8_value_zv;
@@ -394,41 +324,6 @@ static PHP_METHOD(V8Object, Get) {
394324
php_v8_get_or_create_value(return_value, local_value, isolate);
395325
}
396326

397-
static PHP_METHOD(V8Object, GetIndex) {
398-
zval *php_v8_context_zv;
399-
zend_long index;
400-
401-
v8::MaybeLocal<v8::Value> maybe_local;
402-
403-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "ol", &php_v8_context_zv, &index) == FAILURE) {
404-
return;
405-
}
406-
407-
PHP_V8_CHECK_UINT32_RANGE(index, "Index is out of range (should be valid uint32 value)");
408-
409-
PHP_V8_VALUE_FETCH_WITH_CHECK(getThis(), php_v8_value);
410-
PHP_V8_CONTEXT_FETCH_WITH_CHECK(php_v8_context_zv, php_v8_context);
411-
412-
PHP_V8_DATA_ISOLATES_CHECK(php_v8_value, php_v8_context);
413-
414-
PHP_V8_ENTER_STORED_ISOLATE(php_v8_value);
415-
PHP_V8_ENTER_CONTEXT(php_v8_context);
416-
417-
v8::Local<v8::Object> local_obj = php_v8_value_get_object_local(isolate, php_v8_value);
418-
419-
PHP_V8_TRY_CATCH(isolate);
420-
PHP_V8_INIT_ISOLATE_LIMITS_ON_OBJECT_VALUE(php_v8_value);
421-
422-
maybe_local = local_obj->Get(context, static_cast<uint32_t>(index));
423-
424-
PHP_V8_MAYBE_CATCH(php_v8_context, try_catch);
425-
PHP_V8_THROW_EXCEPTION_WHEN_EMPTY(maybe_local, "Failed to get");
426-
427-
v8::Local<v8::Value> local_value = maybe_local.ToLocalChecked();
428-
429-
php_v8_get_or_create_value(return_value, local_value, isolate);
430-
}
431-
432327
static PHP_METHOD(V8Object, GetPropertyAttributes) {
433328
zval *php_v8_context_zv;
434329
zval *php_v8_string_zv;
@@ -527,37 +422,6 @@ static PHP_METHOD(V8Object, Has) {
527422
RETURN_BOOL(maybe_res.FromJust());
528423
}
529424

530-
static PHP_METHOD(V8Object, HasIndex) {
531-
zval *php_v8_context_zv;
532-
zend_long index;
533-
534-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "ol", &php_v8_context_zv, &index) == FAILURE) {
535-
return;
536-
}
537-
538-
PHP_V8_CHECK_UINT32_RANGE(index, "Index is out of range (should be valid uint32 value)");
539-
540-
PHP_V8_VALUE_FETCH_WITH_CHECK(getThis(), php_v8_value);
541-
PHP_V8_CONTEXT_FETCH_WITH_CHECK(php_v8_context_zv, php_v8_context);
542-
543-
PHP_V8_DATA_ISOLATES_CHECK(php_v8_value, php_v8_context);
544-
545-
PHP_V8_ENTER_STORED_ISOLATE(php_v8_value);
546-
PHP_V8_ENTER_CONTEXT(php_v8_context);
547-
548-
v8::Local<v8::Object> local_obj = php_v8_value_get_object_local(isolate, php_v8_value);
549-
550-
PHP_V8_TRY_CATCH(isolate);
551-
PHP_V8_INIT_ISOLATE_LIMITS_ON_OBJECT_VALUE(php_v8_value);
552-
553-
v8::Maybe<bool> maybe_res = local_obj->Has(context, static_cast<uint32_t>(index));
554-
555-
PHP_V8_MAYBE_CATCH(php_v8_context, try_catch);
556-
PHP_V8_THROW_EXCEPTION_WHEN_NOTHING(maybe_res, "Failed to check");
557-
558-
RETURN_BOOL(maybe_res.FromJust());
559-
}
560-
561425
static PHP_METHOD(V8Object, Delete) {
562426
zval *php_v8_context_zv;
563427
zval *php_v8_key_or_index_zv;
@@ -590,37 +454,6 @@ static PHP_METHOD(V8Object, Delete) {
590454
RETURN_BOOL(maybe_res.FromJust());
591455
}
592456

593-
static PHP_METHOD(V8Object, DeleteIndex) {
594-
zval *php_v8_context_zv;
595-
zend_long index;
596-
597-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "ol", &php_v8_context_zv, &index) == FAILURE) {
598-
return;
599-
}
600-
601-
PHP_V8_CHECK_UINT32_RANGE(index, "Index is out of range (should be valid uint32 value)");
602-
603-
PHP_V8_VALUE_FETCH_WITH_CHECK(getThis(), php_v8_value);
604-
PHP_V8_CONTEXT_FETCH_WITH_CHECK(php_v8_context_zv, php_v8_context);
605-
606-
PHP_V8_DATA_ISOLATES_CHECK(php_v8_value, php_v8_context);
607-
608-
PHP_V8_ENTER_STORED_ISOLATE(php_v8_value);
609-
PHP_V8_ENTER_CONTEXT(php_v8_context);
610-
611-
v8::Local<v8::Object> local_obj = php_v8_value_get_object_local(isolate, php_v8_value);
612-
613-
PHP_V8_TRY_CATCH(isolate);
614-
PHP_V8_INIT_ISOLATE_LIMITS_ON_OBJECT_VALUE(php_v8_value);
615-
616-
v8::Maybe<bool> maybe_res = local_obj->Delete(context, static_cast<uint32_t>(index));
617-
618-
PHP_V8_MAYBE_CATCH(php_v8_context, try_catch);
619-
PHP_V8_THROW_EXCEPTION_WHEN_NOTHING(maybe_res, "Failed to delete");
620-
621-
RETURN_BOOL(maybe_res.FromJust());
622-
}
623-
624457
static PHP_METHOD(V8Object, SetAccessor) {
625458
zval *context_zv;
626459
zval *php_v8_name_zv;
@@ -966,8 +799,6 @@ static PHP_METHOD(V8Object, SetIntegrityLevel) {
966799
RETURN_BOOL(maybe_res.FromJust());
967800
}
968801

969-
970-
971802
static PHP_METHOD(V8Object, HasOwnProperty) {
972803
zval *php_v8_context_zv;
973804
zval *php_v8_name_zv;
@@ -1460,24 +1291,12 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_v8_object_Set, ZEND_SEND_BY_VAL, ZEND_RETURN_VALU
14601291
ZEND_ARG_OBJ_INFO(0, value, V8\\Value, 0)
14611292
ZEND_END_ARG_INFO()
14621293

1463-
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_object_SetIndex, ZEND_RETURN_VALUE, 3, _IS_BOOL, 0)
1464-
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
1465-
ZEND_ARG_TYPE_INFO(0, key, IS_LONG, 0)
1466-
ZEND_ARG_OBJ_INFO(0, value, V8\\Value, 0)
1467-
ZEND_END_ARG_INFO()
1468-
14691294
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_object_CreateDataProperty, ZEND_RETURN_VALUE, 3, _IS_BOOL, 0)
14701295
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
14711296
ZEND_ARG_OBJ_INFO(0, key, V8\\NameValue, 0)
14721297
ZEND_ARG_OBJ_INFO(0, value, V8\\Value, 0)
14731298
ZEND_END_ARG_INFO()
14741299

1475-
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_object_CreateDataPropertyIndex, ZEND_RETURN_VALUE, 3, _IS_BOOL, 0)
1476-
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
1477-
ZEND_ARG_TYPE_INFO(0, key, IS_LONG, 0)
1478-
ZEND_ARG_OBJ_INFO(0, value, V8\\Value, 0)
1479-
ZEND_END_ARG_INFO()
1480-
14811300
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_object_DefineOwnProperty, ZEND_RETURN_VALUE, 3, _IS_BOOL, 0)
14821301
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
14831302
ZEND_ARG_OBJ_INFO(0, key, V8\\NameValue, 0)
@@ -1490,11 +1309,6 @@ PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_object_Get, ZEND_RETURN
14901309
ZEND_ARG_OBJ_INFO(0, key, V8\\Value, 0)
14911310
ZEND_END_ARG_INFO()
14921311

1493-
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_object_GetIndex, ZEND_RETURN_VALUE, 2, V8\\Value, 0)
1494-
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
1495-
ZEND_ARG_TYPE_INFO(0, index, IS_LONG, 0)
1496-
ZEND_END_ARG_INFO()
1497-
14981312
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_object_GetPropertyAttributes, ZEND_RETURN_VALUE, 2, IS_LONG, 0)
14991313
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
15001314
ZEND_ARG_OBJ_INFO(0, key, V8\\StringValue, 0)
@@ -1510,21 +1324,11 @@ PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_object_Has, ZEND_RETUR
15101324
ZEND_ARG_OBJ_INFO(0, key, V8\\Value, 0)
15111325
ZEND_END_ARG_INFO()
15121326

1513-
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_object_HasIndex, ZEND_RETURN_VALUE, 2, _IS_BOOL, 0)
1514-
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
1515-
ZEND_ARG_TYPE_INFO(0, index, IS_LONG, 0)
1516-
ZEND_END_ARG_INFO()
1517-
15181327
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_object_Delete, ZEND_RETURN_VALUE, 2, _IS_BOOL, 0)
15191328
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
15201329
ZEND_ARG_OBJ_INFO(0, key, V8\\Value, 0)
15211330
ZEND_END_ARG_INFO()
15221331

1523-
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_object_DeleteIndex, ZEND_RETURN_VALUE, 2, _IS_BOOL, 0)
1524-
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
1525-
ZEND_ARG_TYPE_INFO(0, index, IS_LONG, 0)
1526-
ZEND_END_ARG_INFO()
1527-
15281332
// bool
15291333
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_object_SetAccessor, ZEND_RETURN_VALUE, 3, _IS_BOOL, 0)
15301334
ZEND_ARG_OBJ_INFO(0, context, V8\\Context, 0)
@@ -1650,11 +1454,6 @@ ZEND_END_ARG_INFO()
16501454

16511455
// static methods
16521456

1653-
// NOTE: Not supported yet
1654-
//ZEND_BEGIN_ARG_INFO_EX(arginfo_v8_object_Cast, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 1)
1655-
// ZEND_ARG_OBJ_INFO(0, persistent, V8\\Value, 0)
1656-
//ZEND_END_ARG_INFO()
1657-
16581457
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_object_AdjustExternalAllocatedMemory, ZEND_RETURN_VALUE, 1, IS_LONG, 0)
16591458
ZEND_ARG_TYPE_INFO(0, change_in_bytes, IS_LONG, 0)
16601459
ZEND_END_ARG_INFO()
@@ -1668,18 +1467,13 @@ static const zend_function_entry php_v8_object_methods[] = {
16681467
PHP_ME(V8Object, __construct, arginfo_v8_object___construct, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
16691468
PHP_ME(V8Object, GetContext, arginfo_v8_object_GetContext, ZEND_ACC_PUBLIC)
16701469
PHP_ME(V8Object, Set, arginfo_v8_object_Set, ZEND_ACC_PUBLIC)
1671-
PHP_ME(V8Object, SetIndex, arginfo_v8_object_SetIndex, ZEND_ACC_PUBLIC)
16721470
PHP_ME(V8Object, CreateDataProperty, arginfo_v8_object_CreateDataProperty, ZEND_ACC_PUBLIC)
1673-
PHP_ME(V8Object, CreateDataPropertyIndex, arginfo_v8_object_CreateDataPropertyIndex, ZEND_ACC_PUBLIC)
16741471
PHP_ME(V8Object, DefineOwnProperty, arginfo_v8_object_DefineOwnProperty, ZEND_ACC_PUBLIC)
16751472
PHP_ME(V8Object, Get, arginfo_v8_object_Get, ZEND_ACC_PUBLIC)
1676-
PHP_ME(V8Object, GetIndex, arginfo_v8_object_GetIndex, ZEND_ACC_PUBLIC)
16771473
PHP_ME(V8Object, GetPropertyAttributes, arginfo_v8_object_GetPropertyAttributes, ZEND_ACC_PUBLIC)
16781474
PHP_ME(V8Object, GetOwnPropertyDescriptor, arginfo_v8_object_GetOwnPropertyDescriptor, ZEND_ACC_PUBLIC)
16791475
PHP_ME(V8Object, Has, arginfo_v8_object_Has, ZEND_ACC_PUBLIC)
1680-
PHP_ME(V8Object, HasIndex, arginfo_v8_object_HasIndex, ZEND_ACC_PUBLIC)
16811476
PHP_ME(V8Object, Delete, arginfo_v8_object_Delete, ZEND_ACC_PUBLIC)
1682-
PHP_ME(V8Object, DeleteIndex, arginfo_v8_object_DeleteIndex, ZEND_ACC_PUBLIC)
16831477
PHP_ME(V8Object, SetAccessor, arginfo_v8_object_SetAccessor, ZEND_ACC_PUBLIC)
16841478
PHP_ME(V8Object, SetAccessorProperty, arginfo_php_v8_object_SetAccessorProperty, ZEND_ACC_PUBLIC)
16851479
PHP_ME(V8Object, GetPropertyNames, arginfo_php_v8_object_GetPropertyNames, ZEND_ACC_PUBLIC)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /