This implements the "clip" attribute value for the "crop" attribute found in XUL label elements. It functions similarly to having the text-overflow property set to an empty string or "". This shouldn't break previously established behavior as it only adds a new value to be checked.
The behavior of the "none" attribute value in the documentation (https://udn.realityripple.com/docs/Archive/Mozilla/XUL/Attribute/crop) is incorrect. The "none" attribute value literally means "don't crop anything" if you'd check the code and is also equivalent to not setting the "crop" attribute at all. This has always been the case since Firefox 2 (earliest version I checked) and apparently, this section of the documentation was copied verbatim from XULPlanet without even checking if it's correct.
because crash still happens. crash log:
RegExpShared::finalize(FreeOp* fop)
{
for (auto& comp : compilationArray)
js_free(comp.byteCode);
for (size_t i = 0; i < tables.length(); i++)
js_free(tables[i]);
tables.~JitCodeTables(); // <----
}
Stack trace:
mozglue.dll!arena_dalloc(void * ptr, unsigned int offset) Line 4209 C
mozglue.dll!je_free(void * ptr) Line 6099 C
> xul.dll!js::RegExpShared::finalize(js::FreeOp * fop) Line 982 C++
xul.dll!js::gc::Arena::finalize<js::RegExpShared>(js::FreeOp * fop, js::gc::AllocKind thingKind, unsigned int thingSize) Line 460 C++
xul.dll!FinalizeTypedArenas<js::RegExpShared>(js::FreeOp * fop, js::gc::Arena * * src, js::gc::SortedArenaList & dest, js::gc::AllocKind thingKind, js::SliceBudget & budget, js::gc::ArenaLists::KeepArenasEnum keepArenas) Line 521 C++
xul.dll!js::gc::ArenaLists::backgroundFinalize(js::FreeOp * fop, js::gc::Arena * listHead, js::gc::Arena * * empty) Line 2597 C++
xul.dll!js::gc::GCRuntime::sweepBackgroundThings(js::gc::ZoneList & zones, js::LifoAlloc & freeBlocks) Line 2982 C++
xul.dll!js::GCHelperState::doSweep(js::AutoLockGC & lock) Line 3183 C++
xul.dll!js::GCHelperState::work() Line 3103 C++
xul.dll!js::HelperThread::handleGCHelperWorkload(js::AutoLockHelperThreadState & locked) Line 1823 C++
xul.dll!js::HelperThread::threadLoop() Line 1888 C++
xul.dll!js::detail::ThreadTrampoline<void (__cdecl&)(void *),js::HelperThread *>::Start(void * aPack) Line 227 C++
[External Code]
[Frames below may be incorrect and/or missing, no symbols loaded for ucrtbase.dll]
- Reduce slot size of PromiseReactionRecord to fit into OBJECT8 alloc kind
- Use the Call() helper from Interpreter.h to reduce code duplication
- Clear the incumbent global slot when it's no longer used
Based-on: m-c 1475678/{12-14}
Based on Mozilla bug 1345177.
Changes from the original bug's patch:
- The original patch didn't have a dotAll for a call to irregexp::ParsePattern,
so let's make our dotAll a member of the MutableHandleRegExpShared re.
- Make RegExpShared::initializeNamedCaptures, introduced in Issue #1285, static.
This resolves a build bustage where static RegExpShared::compile was trying to
use a member function.
Based on Mozilla bug 1345177.
Changes from the original bug's patch:
- We don't have JS::CurrentThreadIsHeapCollecting, so let's use
trc->runtime()->isHeapCollecting() instead.
- Mozilla bug 1337117 renamed runtimeFromMainThread to
runtimeFromActiveCooperatingThread for Firefox 54, so let's use the former
This is essentially a follow up to Issue #1286. We already have
UCHAR_EXTENDED_PICTOGRAPHIC in our in-tree ICU, so there's no reason to comment
this case out.
Windows commonly fails to work because of --compressed, and its string
escaping needed improvement because of the complexities of argument
parsing in command windows.