@@ -28,44 +28,46 @@ IsolateData::IsolateData(Isolate* isolate,
28
28
uv_loop_t * event_loop,
29
29
MultiIsolatePlatform* platform,
30
30
uint32_t * zero_fill_field) :
31
-
32
- // Create string and private symbol properties as internalized one byte strings.
33
- //
34
- // Internalized because it makes property lookups a little faster and because
35
- // the string is created in the old space straight away. It's going to end up
36
- // in the old space sooner or later anyway but now it doesn't go through
37
- // v8::Eternal's new space handling first.
38
- //
39
- // One byte because our strings are ASCII and we can safely skip V8's UTF-8
40
- // decoding step. It's a one-time cost, but why pay it when you don't have to?
41
- #define V (PropertyName, StringValue ) \
42
- PropertyName ## _( \
43
- isolate, \
44
- Private::New ( \
45
- isolate, \
46
- String::NewFromOneByte ( \
47
- isolate, \
48
- reinterpret_cast <const uint8_t *>(StringValue), \
49
- v8::NewStringType::kInternalized, \
50
- sizeof(StringValue) - 1).ToLocalChecked())),
51
- PER_ISOLATE_PRIVATE_SYMBOL_PROPERTIES(V)
52
- #undef V
53
- #define V (PropertyName, StringValue ) \
54
- PropertyName ## _( \
55
- isolate, \
56
- String::NewFromOneByte ( \
57
- isolate, \
58
- reinterpret_cast <const uint8_t *>(StringValue), \
59
- v8::NewStringType::kInternalized, \
60
- sizeof(StringValue) - 1).ToLocalChecked()),
61
- PER_ISOLATE_STRING_PROPERTIES(V)
62
- #undef V
63
31
isolate_ (isolate),
64
32
event_loop_ (event_loop),
65
33
zero_fill_field_ (zero_fill_field),
66
34
platform_ (platform) {
67
35
if (platform_ != nullptr )
68
36
platform_->RegisterIsolate (this , event_loop);
37
+
38
+ // Create string and private symbol properties as internalized one byte
39
+ // strings after the platform is properly initialized.
40
+ //
41
+ // Internalized because it makes property lookups a little faster and
42
+ // because the string is created in the old space straight away. It's going
43
+ // to end up in the old space sooner or later anyway but now it doesn't go
44
+ // through v8::Eternal's new space handling first.
45
+ //
46
+ // One byte because our strings are ASCII and we can safely skip V8's UTF-8
47
+ // decoding step.
48
+
49
+ #define V (PropertyName, StringValue ) \
50
+ PropertyName ## _.Set ( \
51
+ isolate, \
52
+ Private::New ( \
53
+ isolate, \
54
+ String::NewFromOneByte ( \
55
+ isolate, \
56
+ reinterpret_cast <const uint8_t *>(StringValue), \
57
+ v8::NewStringType::kInternalized , \
58
+ sizeof (StringValue) - 1 ).ToLocalChecked ()));
59
+ PER_ISOLATE_PRIVATE_SYMBOL_PROPERTIES (V)
60
+ #undef V
61
+ #define V (PropertyName, StringValue ) \
62
+ PropertyName ## _.Set ( \
63
+ isolate, \
64
+ String::NewFromOneByte ( \
65
+ isolate, \
66
+ reinterpret_cast <const uint8_t *>(StringValue), \
67
+ v8::NewStringType::kInternalized , \
68
+ sizeof (StringValue) - 1 ).ToLocalChecked ());
69
+ PER_ISOLATE_STRING_PROPERTIES (V)
70
+ #undef V
69
71
}
70
72
71
73
IsolateData::~IsolateData () {
0 commit comments