12020-01-22 Keith Miller <keith_miller@apple.com>
2
3 InternalField and CheckNeutered DFG nodes are not always safe to execute
4 https://bugs.webkit.org/show_bug.cgi?id=206632
5
6 Reviewed by NOBODY (OOPS!).
7
8 We currently mark (Get/Set)InternalField/CheckNeutered nodes as safe to execute everywhere. However,
9 GetInternalField, etc. rely on a a proof that the cell passed to it is a subclass of InteralFieldObject
10 but we may hoist it past the check guarding it.
11
12 Also, remove a bogus assertion that we will have proven the value passed to CheckNeutered is a TypedArray.
13 It's not valid to require that AI will preserve any invariant since phases can make changes that AI doesn't
14 understand.
15
16 * dfg/DFGAbstractInterpreterInlines.h:
17 (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
18 * dfg/DFGClobberize.h:
19 (JSC::DFG::clobberize):
20 * dfg/DFGSafeToExecute.h:
21 (JSC::DFG::safeToExecute):
22 * dfg/DFGSpeculativeJIT.cpp:
23 (JSC::DFG::SpeculativeJIT::compileCheckNeutered):
24 * ftl/FTLLowerDFGToB3.cpp:
25 (JSC::FTL::DFG::LowerDFGToB3::compileCheckNeutered):
26