Bug Tracker

Ticket #6690 (closed enhancement: fixed)

Opened 5 years ago

Last modified 3 years ago

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:
Blocking: Blocked by:

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

comment:1 Changed 4 years ago by snover

  • Priority set to low
  • Status changed from new to open
  • Summary changed from Sandbox leaks to Store references to location and navigator objects
  • Version changed from 1.4.2 to 1.4.3
  • Milestone changed from 1.4.3 to 1.5

This could also provide a small perf & filesize boost.

comment:2 Changed 4 years ago by john

  • Owner set to john
  • Status changed from open to assigned
  • Milestone set to 1.6

comment:3 Changed 4 years ago by John Resig

  • Status changed from assigned to closed
  • Resolution set to fixed

Cache references to navigator and location. Fixes #6690.

Changeset: 94ee3e9743c2cab24084ae24e02871f6df4aef13

Note: See TracTickets for help on using tickets.