Skip to content

[SF][Table]: Cannot use 'in' operator to search for 'isTable' in null #13684

Description

@i323808

Bug Description

The browser raises an error below.

global error: "Uncaught TypeError: Cannot use 'in' operator to search for 'isTable' in null"
TypeError: Cannot use 'in' operator to search for 'isTable' in null
at createInstanceChecker.js:8
at get _table (TableRowBase.js)
at get _tableSelection (TableRowBase.js)
at get _isSelectable (TableRowBase.js)
at TableRow.onBeforeRendering
at renderImmediately (Render.js)
at RenderQueue.process

It prevent users from opening a DatePicker or a Dialog, collapsing the header if renders the Table in a DynamicPage.

In UI5 2.18, isInstanceOfTable was a hand-written guard:
const isInstanceOfTable = (obj) => !!obj && "isTable" in obj && !!obj.isTable;

In UI5 2.19+, it was refactored to use the new shared createInstanceChecker factory at packages/base/src/util/createInstanceChecker.ts:
return (object) => object !== undefined && prop in object && object[prop] === true;

The refactor swapped !!obj for object !== undefined, which does not catch null. So 'isTable' in null now throws, where it previously returned false silently.

Affected Component

No response

Expected Behaviour

The browser should not raise this error.

Isolated Example

https://stackblitz.com/edit/js-quywvaw3?file=index.html

Steps to Reproduce

  1. navigate to https://stackblitz.com/edit/js-quywvaw3?file=index.html
  2. click 'Render an orphan row (trigger the bug)' button

Log Output, Stack Trace or Screenshots

No response

Priority

Medium

UI5 Web Components Version

2.19.0

Browser

Chrome

Operating System

No response

Additional Context

No response

Organization

No response

Declaration

  • I’m not disclosing any internal or sensitive information.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions