Skip to content

Commit

Permalink
chore: revert revert of locker flag (#5230)
Browse files Browse the repository at this point in the history
  • Loading branch information
jhefferman-sfdc authored Feb 25, 2025
1 parent 76cfad1 commit fcab7b2
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 5 deletions.
11 changes: 7 additions & 4 deletions packages/@lwc/engine-core/src/framework/invoker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { addErrorComponentStack } from '../shared/error';
import { evaluateTemplate, setVMBeingRendered, getVMBeingRendered } from './template';
import { runWithBoundaryProtection } from './vm';
import { logOperationStart, logOperationEnd, OperationId } from './profiler';
import { LightningElement } from './base-lightning-element';
import type { LightningElement } from './base-lightning-element';
import type { Template } from './template';
import type { VM } from './vm';
import type { LightningElementConstructor } from './base-lightning-element';
Expand Down Expand Up @@ -58,9 +58,12 @@ export function invokeComponentConstructor(vm: VM, Ctor: LightningElementConstru
// the "instanceof" operator would not work here since Locker Service provides its own
// implementation of LightningElement, so we indirectly check if the base constructor is
// invoked by accessing the component on the vm.
const isInvalidConstructor = lwcRuntimeFlags.LEGACY_LOCKER_ENABLED
? vmBeingConstructed.component !== result
: !(result instanceof LightningElement);

// TODO [W-17769475]: Restore this fix when we can reliably detect Locker enabled
// const isInvalidConstructor = lwcRuntimeFlags.LEGACY_LOCKER_ENABLED
// ? vmBeingConstructed.component !== result
// : !(result instanceof LightningElement);
const isInvalidConstructor = vmBeingConstructed.component !== result;

if (isInvalidConstructor) {
throw new TypeError(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,8 @@ it("[W-6981076] shouldn't throw when a component with an invalid child in unmoun
expect(() => document.body.removeChild(elm)).not.toThrow();
});

it('should fail when the constructor returns something other than an instance of itself', () => {
// TODO [W-17769475]: Restore this test when we can reliably detect Locker enabled
xit('should fail when the constructor returns something other than an instance of itself', () => {
expect(() => {
createElement('x-returning-bad', { is: ReturningBad });
}).toThrowError(
Expand Down

0 comments on commit fcab7b2

Please sign in to comment.