The task object with `id: 39` does not have a null `root` at the time it is
put into workQueue. At the time it is put into the workQueue it is:
{callback : function(b), ctor: "_Task_andThen", task: {callback:
function(callback), cancel: function(), ctor: "_Task_nativeBinding"}}
The root.task.callback function seems to have one interesting closure that
has a key/value of `navStart:1470247637381`, and there is another link in
the cancel to the process with `id: 38` so it appears to be a continuation
of that one. I am not sure of the internal structure of Elm so I am not
sure what Native Binding it is called, and I use no Native Bindings in my
project (only what comes with Elm core libraries is what exists here at
all).
A little further digging and I am seeing
`_elm_lang$animation_frame$Native_AnimationFrame` in the stack, further
digging makes it seem (although I am unsure) that the `root.task.callback`
is the same function as defined at:
https://github.com/elm-lang/animation-frame/blob/master/src/Native/AnimationFrame.js#L13
I am not yet seeing how the `root` key on this "_Process" object is getting
cleared yet before it has a chance to be processed, still tracing...
On Wednesday, August 3, 2016 at 11:59:23 AM UTC-6, OvermindDL1 wrote:
>
> Debugged into it and caught the exception at the point to get the stack
> values:
> ```javascript
> numSteps = 403
> process = Object {ctor: "_Process", id: 39, root: null, stack: null,
> mailbox: Array[0]}
> ```
> So root is null, why would it be trying to access a null value without
> checking if null?
>
> Any ideas how to work around this in this project so I can at least keep
> working in chrome?
>
>
> On Wednesday, August 3, 2016 at 11:52:36 AM UTC-6, OvermindDL1 wrote:
>>
>> I keep getting this exception thrown from inside Elm, so far only from
>> Chrome Version 51.0.2704.103 m
>> ```
>> elm.js:2417 Uncaught TypeError: Cannot read property 'ctor' of null
>> ```
>>
>> Where that line and the surrounding context is purely Elm generated code,
>> and is:
>> ```javascript
>> // STEP PROCESSES // Line 2411
>>
>> function step(numSteps, process)
>> {
>> while (numSteps < MAX_STEPS)
>> {
>> var ctor = process.root.ctor; // Line 2417 -- This is the error:
>> Uncaught TypeError: Cannot read property 'ctor' of null
>>
>> if (ctor === '_Task_succeed')
>> {
>> while (process.stack && process.stack.ctor === '_Task_onError')
>> {
>> process.stack = process.stack.rest;
>> }
>> if (process.stack === null)
>> ```
>>
>> The same javascript seems to run fine in firefox, IE, and edge, this only
>> seems to happen in Chrome and only 'sometimes'. It seems to happen pretty
>> quickly during loading and if it does not happen at the start then it does
>> not seem to happen. I've not been able to find code to whittle down that
>> lets my app still do anything while still causing this error.
>>
>> The 'step' function is being called from the 'work' function of (and with
>> context):
>> ```
>> javascript
>>
>> // WORK QUEUE
>>
>> var working = false;
>> var workQueue = [];
>>
>> function enqueue(process) {
>> workQueue.push(process);
>>
>> if (!working) {
>> setTimeout(work, 0);
>> working = true;
>> }
>> }
>>
>> function work() {
>> var numSteps = 0;
>> var process;
>> while (numSteps < MAX_STEPS && (process = workQueue.shift())) {
>> numSteps = step(numSteps, process); // This is the place in the callstack
>> before step
>> }
>> if (!process) {
>> working = false;
>> return;
>> }
>> setTimeout(work, 0);
>> }
>> ```
>>
>> Chrome is not reporting anything in the stack below `work` so this
>> appears to be during the setTimeout callback set a few lines prior to work
>> that calls work.
>>
>> Any thoughts as to the cause?
>>
>
--
You received this message because you are subscribed to the Google Groups "Elm
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.