Side bar elements fail to render in browsers that lack hasOwn support
Summary
Browsers that lack Object.hasOwn support fail to render some elements in the sidebar
(such as issue assignees).
The error is:
TypeError: Object.hasOwn is not a function
at En.render (mount_sidebar.js:122)Where mount_sidebar.js:122 is:
function mountAssigneesComponentDeprecated(mediator) {
const el = document.getElementById('js-vue-sidebar-assignees');
if (!el) return;
const { id, iid, fullPath } = getSidebarOptions();
const assigneeAvailabilityStatus = getSidebarAssigneeAvailabilityData();
// eslint-disable-next-line no-new
new Vue({
el,
name: 'SidebarAssigneesRoot',
apolloProvider,
components: {
SidebarAssignees,
},
render: (createElement) =>
createElement('sidebar-assignees', {
props: {
mediator,
issuableIid: String(iid),
projectPath: fullPath,
field: el.dataset.field,
signedIn: Object.hasOwn(el.dataset, 'signedIn'),
issuableType:
isInIssuePage() || isInIncidentPage() || isInDesignPage()
? IssuableType.Issue
: IssuableType.MergeRequest,
issuableId: id,
assigneeAvailabilityStatus,
},
}),
});
}Steps to reproduce
Use a less-mainstream browser (I'm using the latest Qutebrowser v2.5.0)
Detailed browser version info:
qutebrowser v2.5.0
Git commit:
Backend: QtWebEngine 5.15.9, based on Chromium 87.0.4280.144
Qt: 5.15.3
CPython: 3.10.4
PyQt: 5.15.6
sip: 6.5.1
colorama: 0.4.4
jinja2: 3.0.3
pygments: 2.11.2
yaml: 5.4.1
adblock: no
PyQt5.QtWebEngineWidgets: yes
PyQt5.QtWebEngine: 5.15.5
PyQt5.QtWebKitWidgets: no
pdf.js: no
sqlite: 3.37.2
QtNetwork SSL: OpenSSL 3.0.2 15 Mar 2022
Style: QFusionStyle
Platform plugin: xcb
OpenGL: Intel, 4.6 (Compatibility Profile) Mesa 22.0.1
Platform: Linux-5.15.0-33-generic-x86_64-with-glibc2.35, 64bit
Linux distribution: Ubuntu 22.04 LTS (ubuntu)
Frozen: False
Imported from /usr/lib/python3/dist-packages/qutebrowser
Using Python from /usr/bin/python3
Qt library executable path: /usr/lib/x86_64-linux-gnu/qt5/libexec, data path: /usr/share/qt5What is the current bug behavior?
The sidebar fails to render correctly
What is the expected correct behavior?
I can see assignees
Relevant logs and/or screenshots
Output of checks
This bug happens on GitLab.com
Possible fixes
Avoid using hasOwn - prefer hasOwnProperty:
signedIn: el.dataset.hasOwnProperty('signedIn'),Edited by Alex Kalderimis
