@@ -255,10 +255,14 @@ void ModuleWrap::New(const FunctionCallbackInfo<Value>& args) {
255
255
}
256
256
257
257
static Local<Object> createImportAttributesContainer (
258
- Realm* realm, Isolate* isolate, Local<FixedArray> raw_attributes) {
258
+ Realm* realm,
259
+ Isolate* isolate,
260
+ Local<FixedArray> raw_attributes,
261
+ const int elements_per_attribute) {
262
+ CHECK_EQ (raw_attributes->Length () % elements_per_attribute, 0 );
259
263
Local<Object> attributes =
260
264
Object::New (isolate, v8::Null (isolate), nullptr , nullptr , 0 );
261
- for (int i = 0 ; i < raw_attributes->Length (); i += 3 ) {
265
+ for (int i = 0 ; i < raw_attributes->Length (); i += elements_per_attribute ) {
262
266
attributes
263
267
->Set (realm->context (),
264
268
raw_attributes->Get (realm->context (), i).As <String>(),
@@ -304,7 +308,7 @@ void ModuleWrap::Link(const FunctionCallbackInfo<Value>& args) {
304
308
305
309
Local<FixedArray> raw_attributes = module_request->GetImportAssertions ();
306
310
Local<Object> attributes =
307
- createImportAttributesContainer (realm, isolate, raw_attributes);
311
+ createImportAttributesContainer (realm, isolate, raw_attributes, 3 );
308
312
309
313
Local<Value> argv[] = {
310
314
specifier,
@@ -588,7 +592,7 @@ static MaybeLocal<Promise> ImportModuleDynamically(
588
592
}
589
593
590
594
Local<Object> attributes =
591
- createImportAttributesContainer (realm, isolate, import_attributes);
595
+ createImportAttributesContainer (realm, isolate, import_attributes, 2 );
592
596
593
597
Local<Value> import_args[] = {
594
598
id,
0 commit comments