Thank you! Unfortunately, for everyone, it is getting clearer and clearer 
that this is an optimization issue. The issue does not reproduce with the 
--no-crankshaft flag.

The code is calling something like -
jQuery.extend(/* deepCopy */ true, {string: 'something'}, {string, 
'something', instance: someConstructedInstance})
(Where someConstructedInstance is a an instance of an object based on an 
enhanced Backbone View Model, so it is not a plain object)
And sometimes (it used to occasionally appear, it now appears most often 
than not), jQuery.isPlainObject returns true for the value of instance.
That jQuery function finishes with the following statements 
<https://github.com/jquery/jquery/blob/d71f6a53927ad02d728503385d15539b73d21ac8/src/core.js#L472-L475>
 - 
var key;
for ( key in obj ) {}

return key === undefined || core_hasOwn.call( obj, key );
>From my debugging, it sometimes fails the key === undefined 
<https://github.com/jquery/jquery/blob/d71f6a53927ad02d728503385d15539b73d21ac8/src/core.js#L475>
 
check (if I add more logging code, it returns true - that does not make 
sense) and it sometimes fails the core_hasOwn.call( obj, key ) 
<https://github.com/jquery/jquery/blob/d71f6a53927ad02d728503385d15539b73d21ac8/src/core.js#L475>
 
check (which returns true for a key that is not an own property). When this 
happen, Object.keys(obj).indexOf(key) returns -1. I verified that the key 
is indeed not an own property.
(I am using jQuery 1.9.1 and cannot update it, but the code has basically 
gone through simplification, not real bug fixes)

I think it may have started since Chrome 52, I am not sure. It evidently 
possibly became much, much worse in Chrome 53 (Windows 7, Intel Core i5, 32 
bit).

I should report it, but I cannot disclose the code (it is a 
several-megabyte package that includes - and uses in that stack - several 
libraries like Knockout, Backbone, Underscore and more). Can someone 
suggest how I can diagnose and debug this further (without a native code 
debugger) in order to help you understand the exact issue (without showing 
code :()?


☆*PhistucK*
On Tuesday, September 20, 2016 at 3:54:19 PM UTC+3, Michael Hablich wrote:

> --no-crankshaft should do the trick. The name is misleading, it will also 
> disable TurboFan.
>
> On Tuesday, September 20, 2016 at 1:51:51 PM UTC+2, PhistucK wrote:
>>
>> I have an issue where the code suddenly (since Chrome 53) gets caught up 
>> in a cyclic recursion until it exceeds the stack size limit.
>>
>> Since the code is the same, I want to try and rule out engine 
>> optimization issues. Is there a V8 flag for disabling all of the 
>> optimizations?
>>
>>
>> ☆*PhistucK*
>>
>

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to