@@ -255,10 +255,14 @@ void ModuleWrap::New(const FunctionCallbackInfo<Value>& args) {
255255}
256256
257257static 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 );
259263 Local<Object> attributes =
260264 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 ) {
262266 attributes
263267 ->Set (realm->context (),
264268 raw_attributes->Get (realm->context (), i).As <String>(),
@@ -304,7 +308,7 @@ void ModuleWrap::Link(const FunctionCallbackInfo<Value>& args) {
304308
305309 Local<FixedArray> raw_attributes = module_request->GetImportAssertions ();
306310 Local<Object> attributes =
307- createImportAttributesContainer (realm, isolate, raw_attributes);
311+ createImportAttributesContainer (realm, isolate, raw_attributes, 3 );
308312
309313 Local<Value> argv[] = {
310314 specifier,
@@ -588,7 +592,7 @@ static MaybeLocal<Promise> ImportModuleDynamically(
588592 }
589593
590594 Local<Object> attributes =
591- createImportAttributesContainer (realm, isolate, import_attributes);
595+ createImportAttributesContainer (realm, isolate, import_attributes, 2 );
592596
593597 Local<Value> import_args[] = {
594598 id,
0 commit comments