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
2a4fec7
[JSC][armv7] Fix BBQJIT::F64CopySign on armv7
eugeneia Feb 27, 2025
c118d36
[ARMv7] Build-webkit should support --32-bit on ARM64
justinmichaud Feb 27, 2025
bfe0311
Handle wide Air::Arg offsets
aoikonomopoulos Feb 26, 2025
dcba947
[JSC] Fix integer overflow on armv7 in CompleteSubspace::tryAllocateSlow
eugeneia Mar 10, 2025
9a4ac50
[ARMv7] Skip branch compaction when diff would cause misalignment
justinmichaud May 27, 2025
a7c87b8
[JSC] Fix ARMv7 segfault in BBQJIT by avoid the use of `wasmScratchGPR`
sosukesuzuki Jul 9, 2025
87bb90f
Add additional padding for patchable jumps and calls on armv7
justinmichaud Jul 14, 2025
34c549e
[ARMv7] Add padding to align patchable calls
justinmichaud Jul 21, 2025
35cd9f9
[JSC] Fix shiftI64 spilling only on one side of a branch on 32-bit
mikhailramalho Aug 29, 2025
fb005b7
Thumb mode not detected on gcc for arm
efecanicoz-atlas Oct 7, 2025
441c595
[JSC][32-bit] Fix missing move when shift == 0 in BBQ
mikhailramalho Oct 14, 2025
07ec4bb
[JSC][32-bit] Fix BBQ's I64Or
mikhailramalho Nov 11, 2025
8f11ea1
[JSC][ARMv7] Don't issue a ldrd when the register holding the address…
mikhailramalho Nov 14, 2025
3def3bd
[32-bit] Armv7 tail call shuffler should not run out of registers whe…
justinmichaud Jan 14, 2026
d021461
CodeBlock should reset its StubInfo when jettisoned
danlliu Apr 4, 2025
293d6f0
LLInt GetByIdModeMetadata should not hold potentially dead structure IDs
danlliu Apr 4, 2025
90450c5
[JSC] Eagerly unlinking CodeBlock when jettisoning
Constellation Jun 13, 2025
c75f65a
Exclude non-user portions of the main thread stack from stack scannin…
justinmichaud May 29, 2025
32934c9
[JSC] GetByIdModeMetadata's mode needs to be set when not using 64bit…
Constellation Apr 7, 2025
46f4ee0
[JSC][armv7] Verify MacroAssemblerARMv7::branch32 usage in debug builds
eugeneia Mar 24, 2025
9fbbbaf
[ARMv7] Set temporaryCallFrame in WebAssembly.asm
aoikonomopoulos Jul 31, 2025
caf5df2
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