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

Commit b310dcf

Browse files
committed
Remove deprecated V8\StackTrace\StackTraceOptions
1 parent 12ccf72 commit b310dcf

File tree

8 files changed

+19
-174
lines changed

8 files changed

+19
-174
lines changed

src/php_v8_isolate.cc

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -480,9 +480,8 @@ static PHP_METHOD(V8Isolate, CancelTerminateExecution) {
480480
static PHP_METHOD(V8Isolate, SetCaptureStackTraceForUncaughtExceptions) {
481481
zend_bool capture;
482482
zend_long frame_limit = 10;
483-
zend_long options = static_cast<zend_long>(v8::StackTrace::StackTraceOptions::kOverview);
484483

485-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "b|ll", &capture, &frame_limit, &options) == FAILURE) {
484+
if (zend_parse_parameters(ZEND_NUM_ARGS(), "b|ll", &capture, &frame_limit) == FAILURE) {
486485
return;
487486
}
488487

@@ -491,9 +490,7 @@ static PHP_METHOD(V8Isolate, SetCaptureStackTraceForUncaughtExceptions) {
491490
PHP_V8_ISOLATE_FETCH_WITH_CHECK(getThis(), php_v8_isolate);
492491
PHP_V8_ENTER_ISOLATE(php_v8_isolate);
493492

494-
isolate->SetCaptureStackTraceForUncaughtExceptions(static_cast<bool>(capture),
495-
static_cast<int>(frame_limit),
496-
static_cast<v8::StackTrace::StackTraceOptions>(options & PHP_V8_STACK_TRACE_OPTIONS));
493+
isolate->SetCaptureStackTraceForUncaughtExceptions(static_cast<bool>(capture), static_cast<int>(frame_limit));
497494
}
498495

499496
static PHP_METHOD(V8Isolate, IsDead) {
@@ -586,7 +583,6 @@ ZEND_END_ARG_INFO()
586583
ZEND_BEGIN_ARG_INFO_EX(arginfo_v8_isolate_SetCaptureStackTraceForUncaughtExceptions, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 1)
587584
ZEND_ARG_TYPE_INFO(0, capture, _IS_BOOL, 0)
588585
ZEND_ARG_TYPE_INFO(0, frame_limit, IS_LONG, 0)
589-
ZEND_ARG_TYPE_INFO(0, options, IS_LONG, 0)
590586
ZEND_END_ARG_INFO()
591587

592588
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_isolate_IsDead, ZEND_RETURN_VALUE, 0, _IS_BOOL, 0)

src/php_v8_stack_trace.cc

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
#include "php_v8.h"
2121

2222
zend_class_entry* php_v8_stack_trace_class_entry;
23-
zend_class_entry* php_v8_stack_trace_options_class_entry;
2423

2524
#define this_ce php_v8_stack_trace_class_entry
2625

@@ -146,9 +145,8 @@ static PHP_METHOD(V8StackTrace, CurrentStackTrace)
146145
{
147146
zval *isolate_zv;
148147
zend_long frame_limit = 0;
149-
zend_long options = static_cast<zend_long>(v8::StackTrace::StackTraceOptions::kOverview);
150148

151-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "ol|l", &isolate_zv, &frame_limit, &options) == FAILURE) {
149+
if (zend_parse_parameters(ZEND_NUM_ARGS(), "ol", &isolate_zv, &frame_limit) == FAILURE) {
152150
return;
153151
}
154152

@@ -157,11 +155,7 @@ static PHP_METHOD(V8StackTrace, CurrentStackTrace)
157155
PHP_V8_ISOLATE_FETCH_WITH_CHECK(isolate_zv, php_v8_isolate);
158156
PHP_V8_DECLARE_ISOLATE(php_v8_isolate);
159157

160-
v8::Local<v8::StackTrace> trace = v8::StackTrace::CurrentStackTrace(
161-
isolate,
162-
static_cast<int>(frame_limit),
163-
static_cast<v8::StackTrace::StackTraceOptions>(options & PHP_V8_STACK_TRACE_OPTIONS)
164-
);
158+
v8::Local<v8::StackTrace> trace = v8::StackTrace::CurrentStackTrace(isolate, static_cast<int>(frame_limit));
165159

166160
PHP_V8_THROW_VALUE_EXCEPTION_WHEN_EMPTY(trace, "Failed to get current stack trace");
167161

@@ -186,13 +180,12 @@ ZEND_END_ARG_INFO()
186180
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_stack_trace_AsArray, ZEND_RETURN_VALUE, 0, V8\\ArrayObject, 0)
187181
ZEND_END_ARG_INFO()
188182

189-
190-
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_stack_trace_CurrentStackTrace, ZEND_RETURN_VALUE, 2, V8\\StackTrace, 1)
183+
PHP_V8_ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_v8_stack_trace_CurrentStackTrace, ZEND_RETURN_VALUE, 2, V8\\StackTrace, 0)
191184
ZEND_ARG_OBJ_INFO(0, isolate, V8\\Isolate, 0)
192185
ZEND_ARG_TYPE_INFO(0, frame_limit, IS_LONG, 0)
193-
ZEND_ARG_TYPE_INFO(0, options, IS_LONG, 0)
194186
ZEND_END_ARG_INFO()
195187

188+
196189
static const zend_function_entry php_v8_stack_trace_methods[] = {
197190
PHP_ME(V8StackTrace, __construct, arginfo_v8_stack_trace___construct, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
198191

@@ -207,10 +200,6 @@ static const zend_function_entry php_v8_stack_trace_methods[] = {
207200
PHP_FE_END
208201
};
209202

210-
static const zend_function_entry php_v8_stack_trace_options_methods[] = {
211-
PHP_FE_END
212-
};
213-
214203

215204
PHP_MINIT_FUNCTION (php_v8_stack_trace) {
216205
zend_class_entry ce;
@@ -223,21 +212,5 @@ PHP_MINIT_FUNCTION (php_v8_stack_trace) {
223212
zend_declare_property_null(this_ce, ZEND_STRL("frames"), ZEND_ACC_PRIVATE);
224213
zend_declare_property_null(this_ce, ZEND_STRL("as_array"), ZEND_ACC_PRIVATE);
225214

226-
INIT_NS_CLASS_ENTRY(ce, "V8\\StackTrace", "StackTraceOptions", php_v8_stack_trace_options_methods);
227-
php_v8_stack_trace_options_class_entry = zend_register_internal_class(&ce);
228-
229-
230-
zend_declare_class_constant_long(php_v8_stack_trace_options_class_entry, ZEND_STRL("kLineNumber"), v8::StackTrace::StackTraceOptions::kLineNumber);
231-
zend_declare_class_constant_long(php_v8_stack_trace_options_class_entry, ZEND_STRL("kColumnOffset"), v8::StackTrace::StackTraceOptions::kColumnOffset);
232-
zend_declare_class_constant_long(php_v8_stack_trace_options_class_entry, ZEND_STRL("kScriptName"), v8::StackTrace::StackTraceOptions::kScriptName);
233-
zend_declare_class_constant_long(php_v8_stack_trace_options_class_entry, ZEND_STRL("kFunctionName"), v8::StackTrace::StackTraceOptions::kFunctionName);
234-
zend_declare_class_constant_long(php_v8_stack_trace_options_class_entry, ZEND_STRL("kIsEval"), v8::StackTrace::StackTraceOptions::kIsEval);
235-
zend_declare_class_constant_long(php_v8_stack_trace_options_class_entry, ZEND_STRL("kIsConstructor"), v8::StackTrace::StackTraceOptions::kIsConstructor);
236-
zend_declare_class_constant_long(php_v8_stack_trace_options_class_entry, ZEND_STRL("kScriptNameOrSourceURL"), v8::StackTrace::StackTraceOptions::kScriptNameOrSourceURL);
237-
zend_declare_class_constant_long(php_v8_stack_trace_options_class_entry, ZEND_STRL("kScriptId"), v8::StackTrace::StackTraceOptions::kScriptId);
238-
zend_declare_class_constant_long(php_v8_stack_trace_options_class_entry, ZEND_STRL("kExposeFramesAcrossSecurityOrigins"), v8::StackTrace::StackTraceOptions::kExposeFramesAcrossSecurityOrigins);
239-
zend_declare_class_constant_long(php_v8_stack_trace_options_class_entry, ZEND_STRL("kOverview"), v8::StackTrace::StackTraceOptions::kOverview);
240-
zend_declare_class_constant_long(php_v8_stack_trace_options_class_entry, ZEND_STRL("kDetailed"), v8::StackTrace::StackTraceOptions::kDetailed);
241-
242215
return SUCCESS;
243216
}

src/php_v8_stack_trace.h

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,12 @@ extern "C" {
2525
}
2626

2727
extern zend_class_entry* php_v8_stack_trace_class_entry;
28-
extern zend_class_entry* php_v8_stack_trace_options_class_entry;
2928

3029
extern void php_v8_stack_trace_create_from_stack_trace(zval *return_value, php_v8_isolate_t *php_v8_isolate, v8::Local<v8::StackTrace> trace);
3130

3231
#define PHP_V8_STACK_TRACE_MIN_FRAME_LIMIT 0
3332
#define PHP_V8_STACK_TRACE_MAX_FRAME_LIMIT 1000
3433

35-
#define PHP_V8_STACK_TRACE_OPTIONS ( 0 \
36-
| v8::StackTrace::StackTraceOptions::kLineNumber \
37-
| v8::StackTrace::StackTraceOptions::kColumnOffset \
38-
| v8::StackTrace::StackTraceOptions::kScriptName \
39-
| v8::StackTrace::StackTraceOptions::kFunctionName \
40-
| v8::StackTrace::StackTraceOptions::kIsEval \
41-
| v8::StackTrace::StackTraceOptions::kIsConstructor \
42-
| v8::StackTrace::StackTraceOptions::kScriptNameOrSourceURL \
43-
| v8::StackTrace::StackTraceOptions::kScriptId \
44-
| v8::StackTrace::StackTraceOptions::kExposeFramesAcrossSecurityOrigins \
45-
| v8::StackTrace::StackTraceOptions::kOverview \
46-
| v8::StackTrace::StackTraceOptions::kDetailed )
47-
4834
#define PHP_V8_CHECK_STACK_TRACE_RANGE(val, message) \
4935
if ((val) > PHP_V8_STACK_TRACE_MAX_FRAME_LIMIT || (val) < PHP_V8_STACK_TRACE_MIN_FRAME_LIMIT) { \
5036
PHP_V8_THROW_VALUE_EXCEPTION(message); \

stubs/src/Isolate.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
namespace V8;
1616

1717

18-
use V8\StackTrace\StackTraceOptions;
19-
2018
class Isolate
2119
{
2220
/**
@@ -219,12 +217,8 @@ public function IsInUse(): bool
219217
*
220218
* @param bool $capture
221219
* @param int $frame_limit
222-
* @param int $options
223220
*/
224-
public function SetCaptureStackTraceForUncaughtExceptions(
225-
bool $capture,
226-
int $frame_limit = 10,
227-
int $options = StackTraceOptions::kOverview
228-
) {
221+
public function SetCaptureStackTraceForUncaughtExceptions(bool $capture, int $frame_limit = 10)
222+
{
229223
}
230224
}

stubs/src/StackTrace.php

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818

1919
use V8\Exceptions\Exception;
20-
use V8\StackTrace\StackTraceOptions;
2120

2221

2322
/**
@@ -107,18 +106,14 @@ public function AsArray(): ArrayObject
107106
*
108107
* @param Isolate $isolate
109108
* @param int $frame_limit
110-
* @param int $options One or more \v8\StackTrace\StackTraceOptions const flags
111109
*
112110
* TODO: try to minimize effect of invalid args
113111
* Note, that having large (or negative) $frame_limit number may cause OutOfMemory error.
114112
* To minimize any potentially erroneous usage, allowed range for $frame_limit is [0, 1000] (boundaries included).
115113
*
116114
* @return StackTrace
117115
*/
118-
public static function CurrentStackTrace(
119-
Isolate $isolate,
120-
int $frame_limit,
121-
int $options = StackTraceOptions::kOverview
122-
): StackTrace {
116+
public static function CurrentStackTrace(Isolate $isolate, int $frame_limit): StackTrace
117+
{
123118
}
124119
}

stubs/src/StackTrace/StackTraceOptions.php

Lines changed: 0 additions & 35 deletions
This file was deleted.

tests/V8StackTraceOptions.phpt

Lines changed: 0 additions & 45 deletions
This file was deleted.

tests/V8StackTrace_CurrentStackTrace.phpt

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,7 @@ $current_stack_trace_func_tpl = new \v8Tests\TrackingDtors\FunctionTemplate($iso
2828
$frame_limit = 10;
2929
}
3030

31-
if (count($args->Arguments()) > 1) {
32-
$options = $args->Arguments()[1]->NumberValue($context);
33-
} else {
34-
$options = \V8\StackTrace\StackTraceOptions::kOverview;
35-
}
36-
37-
$stack_trace = \V8\StackTrace::CurrentStackTrace($isolate, $frame_limit, $options);
31+
$stack_trace = \V8\StackTrace::CurrentStackTrace($isolate, $frame_limit);
3832

3933
echo 'totally ', $stack_trace->GetFrameCount(), ' frames:', PHP_EOL;
4034

@@ -76,27 +70,14 @@ function recursive_get_trace(depth, frame_limit, options) {
7670
return get_trace(frame_limit, options);
7771
}
7872
79-
80-
var kLineNumber = 1;
81-
var kColumnOffset = 3;
82-
var kScriptName = 4;
83-
var kFunctionName = 8;
84-
var kIsEval = 16;
85-
var kIsConstructor = 32;
86-
var kScriptNameOrSourceURL = 64;
87-
var kScriptId = 128;
88-
var kExposeFramesAcrossSecurityOrigins = 256;
89-
var kOverview = 15;
90-
var kDetailed = 127;
91-
92-
get_trace(0, kDetailed); // zero trace is fine, though, makes no sense
93-
get_trace(1, kDetailed);
94-
get_trace(2, kColumnOffset | kScriptId);
73+
get_trace(0); // zero trace is fine, though, makes no sense
74+
get_trace(1);
75+
get_trace(2);
9576
9677
9778
new TestWithConstructor(1, -1);
9879
99-
recursive_get_trace(100, 10, kOverview);
80+
recursive_get_trace(100, 10);
10081
10182
get_trace(2, -1); // as option are bit flags, -1 will lead to all options set
10283
@@ -145,7 +126,7 @@ totally 1 frames:
145126
totally 2 frames:
146127
[
147128
{"line":15,"column":18,"scriptId":%d,"scriptName":"test.js","scriptNameOrSourceURL":"test.js","functionName":"get_trace","isEval":false,"isConstructor":false}
148-
{"line":47,"column":2,"scriptId":%d,"scriptName":"test.js","scriptNameOrSourceURL":"test.js","functionName":"","isEval":false,"isConstructor":false}
129+
{"line":34,"column":2,"scriptId":%d,"scriptName":"test.js","scriptNameOrSourceURL":"test.js","functionName":"","isEval":false,"isConstructor":false}
149130
]
150131

151132
totally 1 frames:
@@ -170,13 +151,13 @@ totally 10 frames:
170151
totally 2 frames:
171152
[
172153
{"line":15,"column":18,"scriptId":%d,"scriptName":"test.js","scriptNameOrSourceURL":"test.js","functionName":"get_trace","isEval":false,"isConstructor":false}
173-
{"line":54,"column":2,"scriptId":%d,"scriptName":"test.js","scriptNameOrSourceURL":"test.js","functionName":"","isEval":false,"isConstructor":false}
154+
{"line":41,"column":2,"scriptId":%d,"scriptName":"test.js","scriptNameOrSourceURL":"test.js","functionName":"","isEval":false,"isConstructor":false}
174155
]
175156

176157
JS-land stack trace:
177158
Error
178-
at stackTrace (test.js:58:15)
179-
at test.js:64:7
159+
at stackTrace (test.js:45:15)
160+
at test.js:51:7
180161

181162
Script dies now!
182163
ObjectTemplate dies now!

0 commit comments

Comments
 (0)