From 164468b25e14a0200e2906dd5b6c9b053deb4d8d Mon Sep 17 00:00:00 2001 From: Manohar Siriki Date: Tue, 25 Jun 2024 16:20:55 +0530 Subject: [PATCH 1/2] Fix: Ensure insertBefore throws an error when called with incorrect number of arguments --- packages/@lwc/engine-dom/src/apis/create-element.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/@lwc/engine-dom/src/apis/create-element.ts b/packages/@lwc/engine-dom/src/apis/create-element.ts index cba88ef925..1ef048682d 100644 --- a/packages/@lwc/engine-dom/src/apis/create-element.ts +++ b/packages/@lwc/engine-dom/src/apis/create-element.ts @@ -66,6 +66,9 @@ function monkeyPatchDomAPIs() { return callNodeSlot(appendedNode, ConnectingSlot); }, insertBefore(newChild, referenceNode) { + if (arguments.length < 2) { + throw new TypeError("Failed to execute 'insertBefore' on 'Node': 2 arguments required, but only 1 present."); + } const insertedNode = insertBefore.call(this, newChild, referenceNode); return callNodeSlot(insertedNode, ConnectingSlot); }, From 9c89e71e89ce0651ae361677305d115b882e1753 Mon Sep 17 00:00:00 2001 From: Manohar Siriki Date: Fri, 5 Jul 2024 16:57:08 +0530 Subject: [PATCH 2/2] Update create-element.ts --- packages/@lwc/engine-dom/src/apis/create-element.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/@lwc/engine-dom/src/apis/create-element.ts b/packages/@lwc/engine-dom/src/apis/create-element.ts index 1ef048682d..979ead78d5 100644 --- a/packages/@lwc/engine-dom/src/apis/create-element.ts +++ b/packages/@lwc/engine-dom/src/apis/create-element.ts @@ -25,6 +25,7 @@ import { shouldBeFormAssociated, } from '@lwc/engine-core'; import { renderer } from '../renderer'; +import { logWarnOnce } from '../../../engine-core/src/shared/logger'; // TODO [#2472]: Remove this workaround when appropriate. // eslint-disable-next-line @lwc/lwc-internal/no-global-node @@ -67,7 +68,7 @@ function monkeyPatchDomAPIs() { }, insertBefore(newChild, referenceNode) { if (arguments.length < 2) { - throw new TypeError("Failed to execute 'insertBefore' on 'Node': 2 arguments required, but only 1 present."); + logWarnOnce('insertBefore should be called with 2 arguments. Calling with only 1 argument is not supported.'); } const insertedNode = insertBefore.call(this, newChild, referenceNode); return callNodeSlot(insertedNode, ConnectingSlot);