Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
a353346
[JSC][armv7] Fix BBQJIT::F64CopySign on armv7
eugeneia Feb 27, 2025
51a3ce0
[ARMv7] Build-webkit should support --32-bit on ARM64
justinmichaud Feb 27, 2025
78cae7d
Handle wide Air::Arg offsets
aoikonomopoulos Feb 26, 2025
b1819ca
[JSC] Fix integer overflow on armv7 in CompleteSubspace::tryAllocateSlow
eugeneia Mar 10, 2025
13bcc2b
[ARMv7] Skip branch compaction when diff would cause misalignment
justinmichaud May 27, 2025
7012b40
[JSC] Fix ARMv7 segfault in BBQJIT by avoid the use of `wasmScratchGPR`
sosukesuzuki Jul 9, 2025
e5e7981
Add additional padding for patchable jumps and calls on armv7
justinmichaud Jul 14, 2025
1b66779
[ARMv7] Add padding to align patchable calls
justinmichaud Jul 21, 2025
1541460
[JSC] Fix shiftI64 spilling only on one side of a branch on 32-bit
mikhailramalho Aug 29, 2025
e8bc009
Thumb mode not detected on gcc for arm
efecanicoz-atlas Oct 7, 2025
5741b85
[JSC][32-bit] Fix missing move when shift == 0 in BBQ
mikhailramalho Oct 14, 2025
b3cbe87
[JSC][32-bit] Fix BBQ's I64Or
mikhailramalho Nov 11, 2025
d305b4f
[JSC][ARMv7] Don't issue a ldrd when the register holding the address…
mikhailramalho Nov 14, 2025
0da0bae
[32-bit] Armv7 tail call shuffler should not run out of registers whe…
justinmichaud Jan 14, 2026
368a319
CodeBlock should reset its StubInfo when jettisoned
danlliu Apr 4, 2025
8e8152a
LLInt GetByIdModeMetadata should not hold potentially dead structure IDs
danlliu Apr 4, 2025
58b6e59
[JSC] Eagerly unlinking CodeBlock when jettisoning
Constellation Jun 13, 2025
726bfd2
Exclude non-user portions of the main thread stack from stack scannin…
justinmichaud May 29, 2025
52a71b8
[JSC] GetByIdModeMetadata's mode needs to be set when not using 64bit…
Constellation Apr 7, 2025
a129897
[JSC][armv7] Verify MacroAssemblerARMv7::branch32 usage in debug builds
eugeneia Mar 24, 2025
a176cb7
[ARMv7] Set temporaryCallFrame in WebAssembly.asm
aoikonomopoulos Jul 31, 2025
d23d085
Js/Wasm engine produce an invalid ref.cast runtime fail for func.ref …
Constellation Jun 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
137 changes: 137 additions & 0 deletions JSTests/stress/tail-call-register-pressure.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
"use strict";

function getModuleExports() {
return () => {}
};

function ownKeys(ee, te) {
var re = Object.keys(ee);
if (Object.getOwnPropertySymbols) {
var ne = Object.getOwnPropertySymbols(ee);
te && (ne = ne.filter((function(te) {
return Object.getOwnPropertyDescriptor(ee, te).enumerable
}))),
re.push.apply(re, ne)
}
return re
}

function _objectSpread(ee) {
for (var te = 1; te < arguments.length; te++) {
var re = null != arguments[te] ? arguments[te] : {};
te % 2 ? ownKeys(Object(re), !0).forEach((function(te) {
getModuleExports()(ee, te, re[te])
})) : Object.getOwnPropertyDescriptors ? Object.defineProperties(ee, Object.getOwnPropertyDescriptors(re)) : ownKeys(Object(re)).forEach((function(te) {
Object.defineProperty(ee, te, Object.getOwnPropertyDescriptor(re, te))
}))
}
return ee
}

var ae = {
cleanAndTrimSelfLink: function() {
}
};

var browseItems = function(ee, te, re) {
function parseBrowseItem(ee, te, re, ne, ie) {
var ce, le, de, he;
if (ee.hasEmbedded("linearInfo")) {
var fe = ee.getEmbedded("linearInfo"),
pe = Object(ae.cleanSelfLink)(fe.getFirstAction("channel").getRawActionUrl());
if (!ne[pe] && !ie) return;
}

var ge = function parseBrowseItemUrl(ee, te) {
var re = ee.getProp("entityId"),
ne = ee.getProp("entityType"),
ie = ee.getProp("seriesProgramId"),
oe = ee.getProp("_type");
return "entity/".concat(re)
}(ee, he),
me = ee.getProps();
if (("NETWORK" !== te || ee.hasEmbedded("contentProvider")) && ("3X4_PROGRAM_LINEAR" !== te || ee.hasEmbedded("linearInfo"))) {
var ve = ee.hasAction("programImageLink") ? ee.getFirstAction("programImageLink") : re.programImageLink,
Se = ee.hasAction("programFallbackImageLink"),
_t = Se ? ee.getFirstAction("programFallbackImageLink") : re.programFallbackImageLink;

var Et, kt, Tt, Pt = _t.setParams(de).getActionUrl();
return Et = Se ? Pt : ve.setParams(de).getActionUrl(), me.contentRating && me.contentRatingScheme && (kt = {
scheme: me.contentRatingScheme,
name: me.contentRating
}), (null === (ce = me.ordering) || void 0 === ce ? void 0 : ce.criticScore) && (null === (le = me.ordering) || void 0 === le ? void 0 : le.fanScore) && (Tt = {
rt: {
criticScore: Math.floor(me.ordering.criticScore),
criticCertified: Math.floor(me.ordering.criticScore) >= 75,
criticRotten: Math.floor(me.ordering.criticScore) < 60,
fanScore: Math.floor(me.ordering.fanScore),
fanRotten: Math.floor(me.ordering.fanScore) < 60
}
}), _objectSpread({
_type: me._type
}, me.adBrand && {
adBrand: me.adBrand
}, {}, me.entityId && {
entityId: me.entityId
}, {}, me.entityType && {
entityType: me.entityType
}, {}, me.episodeNumber && {
episodeNumber: me.episodeNumber
}, {}, he && {
linearInfo: he
}, {}, me.numberOfEpisodes && {
numberOfEpisodes: me.numberOfEpisodes
}, {}, me.programType && {
programType: me.programType
}, {}, kt && {
rating: kt
}, {}, Tt && {
reviews: Tt
}, {}, me.hasDVS && {
dvs: me.hasDVS
}, {}, me.isHD && {
hd: me.isHD
}, {}, me.closedCaption && {
cc: me.closedCaption
}, {}, me.isSAP && {
sap: me.isSAP
}, {}, me.releaseYear && {
releaseYear: me.releaseYear
}, {}, me.seasonNumber && {
seasonNumber: me.seasonNumber
}, {}, me.seriesTitle && {
seriesTitle: me.seriesTitle
}, {}, {
tileRenderStyle: me.tileRenderStyle || te,
title: me.title,
subtitle: me.subtitle,
image: Et,
fallbackImage: Pt,
url: ge
})
}
}

return parseBrowseItem(ee, te, re,{},{})
}

const runTest = function() {
for (var i = 1; i < 100; ++i) {
browseItems(
{
hasAction: () => {},
hasEmbedded: (i) => { return i === "contentProvider"; },
getProp: () => { return undefined },
getProps: () => { return {} },
getFirstAction: () => { return { getRawActionUrl: () => "url" } },
},
{},
{
programImageLink: { setParams: () => { return { getActionUrl: () => "programImageLink" }; } },
programFallbackImageLink: { setParams: () => { return { getActionUrl: () => "programFallbackImageLinkrl" }; } },
}
)
}
}

runTest()
Binary file not shown.
Loading