|
23 | 23 | #include "php_v8_stack_trace.h"
|
24 | 24 | #include "php_v8_object.h"
|
25 | 25 | #include "php_v8_value.h"
|
| 26 | +#include "php_v8_enums.h" |
26 | 27 | #include "php_v8_a.h"
|
27 | 28 | #include "php_v8.h"
|
28 | 29 |
|
@@ -424,6 +425,21 @@ static PHP_METHOD(Isolate, lowMemoryNotification) {
|
424 | 425 | isolate->LowMemoryNotification();
|
425 | 426 | }
|
426 | 427 |
|
| 428 | +static PHP_METHOD(Isolate, setRAILMode) { |
| 429 | + zend_long rail_mode = -1; |
| 430 | + |
| 431 | + if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &rail_mode) == FAILURE) { |
| 432 | + return; |
| 433 | + } |
| 434 | + |
| 435 | + PHP_V8_CHECK_ISOLATE_RAIL_MODE(rail_mode, "Invalid RAIL mode given. See V8\\RAILMode class constants for available values.") |
| 436 | + |
| 437 | + PHP_V8_ISOLATE_FETCH_WITH_CHECK(getThis(), php_v8_isolate); |
| 438 | + PHP_V8_ENTER_ISOLATE(php_v8_isolate); |
| 439 | + |
| 440 | + isolate->SetRAILMode(static_cast<v8::RAILMode>(rail_mode)); |
| 441 | +} |
| 442 | + |
427 | 443 | static PHP_METHOD(Isolate, terminateExecution) {
|
428 | 444 | if (zend_parse_parameters_none() == FAILURE) {
|
429 | 445 | return;
|
@@ -549,6 +565,10 @@ PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_idleNotificationDeadline,
|
549 | 565 | ZEND_ARG_INFO(0, deadline_in_seconds)
|
550 | 566 | ZEND_END_ARG_INFO()
|
551 | 567 |
|
| 568 | +PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_VOID_INFO_EX(arginfo_setRAILMode, 1) |
| 569 | + ZEND_ARG_TYPE_INFO(0, rail_mode, IS_LONG, 0) |
| 570 | +ZEND_END_ARG_INFO() |
| 571 | + |
552 | 572 | PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_VOID_INFO_EX(arginfo_lowMemoryNotification, 0)
|
553 | 573 | ZEND_END_ARG_INFO()
|
554 | 574 |
|
@@ -588,6 +608,7 @@ static const zend_function_entry php_v8_isolate_methods[] = {
|
588 | 608 | PHP_V8_ME(Isolate, throwException, ZEND_ACC_PUBLIC)
|
589 | 609 | PHP_V8_ME(Isolate, idleNotificationDeadline, ZEND_ACC_PUBLIC)
|
590 | 610 | PHP_V8_ME(Isolate, lowMemoryNotification, ZEND_ACC_PUBLIC)
|
| 611 | + PHP_V8_ME(Isolate, setRAILMode, ZEND_ACC_PUBLIC) |
591 | 612 | PHP_V8_ME(Isolate, terminateExecution, ZEND_ACC_PUBLIC)
|
592 | 613 | PHP_V8_ME(Isolate, isExecutionTerminating, ZEND_ACC_PUBLIC)
|
593 | 614 | PHP_V8_ME(Isolate, cancelTerminateExecution, ZEND_ACC_PUBLIC)
|
|
0 commit comments