Skip to content
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)