File tree 4 files changed +22
-15
lines changed
4 files changed +22
-15
lines changed Original file line number Diff line number Diff line change @@ -133,10 +133,11 @@ For example:
133
133
}
134
134
```
135
135
136
- ## v8.setFlagsFromString(string )
136
+ ## v8.setFlagsFromString(flags )
137
137
<!-- YAML
138
138
added: v1.0.0
139
139
-->
140
+ * ` flags ` {string}
140
141
141
142
The ` v8.setFlagsFromString() ` method can be used to programmatically set
142
143
V8 command line flags. This method should be used with care. Changing settings
Original file line number Diff line number Diff line change 15
15
'use strict' ;
16
16
17
17
const { Buffer } = require ( 'buffer' ) ;
18
+ const errors = require ( 'internal/errors' ) ;
18
19
const {
19
20
Serializer : _Serializer ,
20
21
Deserializer : _Deserializer
@@ -32,7 +33,7 @@ class Deserializer extends _Deserializer { }
32
33
33
34
const {
34
35
cachedDataVersionTag,
35
- setFlagsFromString,
36
+ setFlagsFromString : _setFlagsFromString ,
36
37
heapStatisticsArrayBuffer,
37
38
heapSpaceStatisticsArrayBuffer,
38
39
updateHeapStatisticsArrayBuffer,
@@ -64,6 +65,12 @@ const heapStatisticsBuffer =
64
65
const heapSpaceStatisticsBuffer =
65
66
new Float64Array ( heapSpaceStatisticsArrayBuffer ) ;
66
67
68
+ function setFlagsFromString ( flags ) {
69
+ if ( typeof flags !== 'string' )
70
+ throw new errors . TypeError ( 'ERR_INVALID_ARG_TYPE' , 'flags' , 'string' ) ;
71
+ _setFlagsFromString ( flags ) ;
72
+ }
73
+
67
74
function getHeapStatistics ( ) {
68
75
const buffer = heapStatisticsBuffer ;
69
76
Original file line number Diff line number Diff line change @@ -114,13 +114,7 @@ void UpdateHeapSpaceStatisticsBuffer(const FunctionCallbackInfo<Value>& args) {
114
114
115
115
116
116
void SetFlagsFromString (const FunctionCallbackInfo<Value>& args) {
117
- Environment* env = Environment::GetCurrent (args);
118
-
119
- if (args.Length () < 1 )
120
- return env->ThrowTypeError (" v8 flag is required" );
121
- if (!args[0 ]->IsString ())
122
- return env->ThrowTypeError (" v8 flag must be a string" );
123
-
117
+ CHECK (args[0 ]->IsString ());
124
118
String::Utf8Value flags (args[0 ]);
125
119
V8::SetFlagsFromString (*flags, flags.length ());
126
120
}
Original file line number Diff line number Diff line change 1
1
'use strict' ;
2
- require ( '../common' ) ;
3
- const assert = require ( 'assert' ) ;
2
+ const common = require ( '../common' ) ;
4
3
const v8 = require ( 'v8' ) ;
5
4
6
- assert . throws ( function ( ) { v8 . setFlagsFromString ( 1 ) ; } ,
7
- / ^ T y p e E r r o r : v 8 f l a g m u s t b e a s t r i n g $ / ) ;
8
- assert . throws ( function ( ) { v8 . setFlagsFromString ( ) ; } ,
9
- / ^ T y p e E r r o r : v 8 f l a g i s r e q u i r e d $ / ) ;
5
+ [ 1 , undefined ] . forEach ( ( i ) => {
6
+ common . expectsError (
7
+ ( ) => v8 . setFlagsFromString ( i ) ,
8
+ {
9
+ code : 'ERR_INVALID_ARG_TYPE' ,
10
+ type : TypeError ,
11
+ message : 'The "flags" argument must be of type string'
12
+ }
13
+ ) ;
14
+ } ) ;
You can’t perform that action at this time.
0 commit comments