Bug Tracker

Opened 13 years ago

Closed 12 years ago

Last modified 11 years ago

#6690 closed enhancement (fixed)

Store references to location and navigator objects

Reported by: jos3000 Owned by: john
Priority: low Milestone: 1.6
Component: core Version: 1.4.3
Keywords: sandbox Cc:
Blocked by: Blocking:

Description

I'm using jsdom to run jQuery on node.js

In the main example: http://github.com/tmpvar/jsdom/blob/master/example/jquery/run.js

the variables 'window', 'document', 'navigator' and 'location' are defined in the scope before query is run. For neatness I tried to remove all but 'window' since jQuery starts by wrapping all the code in a closure with only 'window' as an argument.

It turns out that it still requires 'navigator' and 'location' to be defined.

Would it be possible to add: var navigator = window.navigator, location = window.location; to the core so that the sandbox is complete? This is already done with 'document'.

I know this should work, but wonder if there is a browser compatibility reason that this would break.

Change History (3)

comment:1 Changed 12 years ago by snover

Milestone: 1.4.31.5
Priority: low
Status: newopen
Summary: Sandbox leaksStore references to location and navigator objects
Version: 1.4.21.4.3

This could also provide a small perf & filesize boost.

comment:2 Changed 12 years ago by john

Milestone: 1.6
Owner: set to john
Status: openassigned

comment:3 Changed 12 years ago by John Resig

Resolution: fixed
Status: assignedclosed

Cache references to navigator and location. Fixes #6690.

Changeset: 94ee3e9743c2cab24084ae24e02871f6df4aef13

Note: See TracTickets for help on using tickets.