
----- tests for getting a targetWindow's history object's functions which have custom overrides.  The desired behavior is for the targetWindow to return the builtin function, not the override -----

PASS: canGet('targetWindow.history.back') should be 'true' and is.
PASS: toString('targetWindow.history.back') should be 'function back() {    [native code]}' and is.
PASS: canGet('targetWindow.history.forward') should be 'true' and is.
PASS: toString('targetWindow.history.forward') should be 'function forward() {    [native code]}' and is.
PASS: canGet('targetWindow.history.go') should be 'true' and is.
PASS: toString('targetWindow.history.go') should be 'function go() {    [native code]}' and is.

