the following poc will cause a assertion failure in "debug" build on ubuntu.
function opt() {
const v3 = delete opt.length;
for (const v4 in opt) {
}
}
opt();
opt();
0 0x00005555565cd77c in Js::SimpleTypeHandler<3ul>::DeleteProperty (this=0x7ff7f43f6780,
instance=0x7ff7f43f6730, propertyId=209, propertyOperationFlags=Js::PropertyOperation_None)
at /home/zhunki/workspace/ChakraCore-master/lib/Runtime/Types/SimpleTypeHandler.cpp:664
1 0x00005555564da2f3 in Js::DynamicObject::DeleteProperty (this=0x7ff7f43f6730, propertyId=209,
flags=Js::PropertyOperation_None)
at /home/zhunki/workspace/ChakraCore-master/lib/Runtime/Types/DynamicType.cpp:336
2 0x00005555561d7c5e in Js::JavascriptFunction::DeleteProperty (this=0x7ff7f43f6730,
propertyId=209, flags=Js::PropertyOperation_None)
at /home/zhunki/workspace/ChakraCore-master/lib/Runtime/Library/JavascriptFunction.cpp:3055
3 0x0000555556053098 in Js::JavascriptOperators::DeleteProperty_Impl (instance=
0x7ff7f43f6730, propertyId=209, propertyOperationFlags=Js::PropertyOperation_None)
at /home/zhunki/workspace/ChakraCore-master/lib/Runtime/Language/JavascriptOperators.cpp:3130
4 0x00005555560323b1 in Js::JavascriptOperators::DeleteProperty (instance=0x7ff7f43f6730,
propertyId=209, propertyOperationFlags=Js::PropertyOperation_None)
at /home/zhunki/workspace/ChakraCore-master/lib/Runtime/Language/JavascriptOperators.cpp:3074
5 0x0000555556032571 in Js::JavascriptOperators::OP_DeleteProperty (instance=0x7ff7f43f6730,
propertyId=209, scriptContext=0x555557ef0c68, propertyOperationFlags=Js::PropertyOperation_None)
at /home/zhunki/workspace/ChakraCore-master/lib/Runtime/Language/JavascriptOperators.cpp:3149
the following poc will cause a assertion failure in "debug" build on ubuntu.
0 0x00005555565cd77c in Js::SimpleTypeHandler<3ul>::DeleteProperty (this=0x7ff7f43f6780,
1 0x00005555564da2f3 in Js::DynamicObject::DeleteProperty (this=0x7ff7f43f6730, propertyId=209,
2 0x00005555561d7c5e in Js::JavascriptFunction::DeleteProperty (this=0x7ff7f43f6730,
3 0x0000555556053098 in Js::JavascriptOperators::DeleteProperty_Impl (instance=
4 0x00005555560323b1 in Js::JavascriptOperators::DeleteProperty (instance=0x7ff7f43f6730,
5 0x0000555556032571 in Js::JavascriptOperators::OP_DeleteProperty (instance=0x7ff7f43f6730,
6 0x0000555555fb9421 in Js::InterpreterStackFrame::OP_DeleteFld<Js::OpLayoutT_ElementC<Js::LayoutSizePolicy<(Js::LayoutSize)0> > __unaligned>(Js::OpLayoutT_ElementC<Js::LayoutSizePolicy<(Js::LayoutSize)0> > unaligned const unaligned*) (this=0x7fffffffae30, playout=0x7ff7f4c540cb)
7 0x0000555555eb2b3d in Js::InterpreterStackFrame::ProcessProfiled (this=0x7fffffffae30)
8 0x0000555555e53ee2 in Js::InterpreterStackFrame::Process (this=0x7fffffffae30)
9 0x0000555555e52ba3 in Js::InterpreterStackFrame::InterpreterHelper (function=0x7ff7f43f6730,
10 0x0000555555e51c80 in Js::InterpreterStackFrame::InterpreterThunk (layout=0x7fffffffb3e0)
11 0x00007ff7f4350f9a in ?? ()
12 0x00007fffffffb400 in ?? ()
13 0x00005555564a755e in amd64_CallFunction ()
Backtrace stopped: frame did not save the PC