backbone-dnode icon indicating copy to clipboard operation
backbone-dnode copied to clipboard

Failure on Model.create with backbone.js v0.9.2

Open hughlomas opened this issue 13 years ago • 1 comments

I've tried this with both the Todo example that is provided, and with a custom example of my own. Both work with the included backbone.js v0.5.3 but both experience this issue with backbone.js v0.9.2 (latest at the current time).

I will assume the Todo example for the following.

Attempting to create a new Todo:

  • in Chrome 19.0.1084.56 m the browser hangs until eventually the tab dies.
  • in Firefox 12.0 however the server console outputs the following:
Conn Error:  TypeError: Cannot convert null to object
    at setAt (c:\example\node_modules\dnode\node_modules\dnode-protocol\index.js:212:45)
    at c:\example\node_modules\dnode\node_modules\dnode-protocol\index.js:197:20
    at Array.forEach (native)
    at Object.unscrub (c:\example\node_modules\dnode\node_modules\dnode-protocol\index.js:194:42)
    at EventEmitter.handle (c:\example\node_modules\dnode\node_modules\dnode-protocol\index.js:86:29)
    at c:\example\node_modules\dnode\node_modules\dnode-protocol\index.js:81:20
    at EventEmitter. (c:\example\node_modules\dnode\node_modules\lazy\lazy.js:62:13)
    at EventEmitter. (c:\example\node_modules\dnode\node_modules\lazy\lazy.js:46:19)
    at EventEmitter.emit (events.js:67:17)
    at EventEmitter. (c:\example\node_modules\dnode\node_modules\lazy\lazy.js:46:39)

The minified DNode client-side code is difficult for me to debug, however the chrome lockup seemed to be due to some recursive looping over every object in window.

Here is an example chrome stack trace upon pausing script execution after attempting to create a todo:


require.define.b.exports (dnode.js:1)
require.define.s (dnode.js:1)
i (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
require.define.b (dnode.js:1)
require.define.s (dnode.js:1)
g (dnode.js:1)
h (dnode.js:1)
require.define.g.map (dnode.js:1)
require.define.b.exports.b.scrub (dnode.js:1)
require.define.b.exports.c.request (dnode.js:1)
require.define.b.exports.c.handle.d (dnode.js:1)
require.define.g.wrap (dnode.js:1)
_.mixin.sync (dnode.backbone.js:123)
_.extend.save (backbone.0.9.2.js:396)
_.extend.create (backbone.0.9.2.js:784)
window.AppView.Backbone.View.extend.createOnEnter (todos.js:254)
f.event.dispatch (jquery.min.js:3)
f.event.add.h.handle.i (jquery.min.js:3)

hughlomas avatar Jun 14 '12 17:06 hughlomas

Hmm, I'll check it out, thanks.

sorensen avatar Jun 16 '12 18:06 sorensen