Revision history for WWW::Scripter::Plugin::JavaScript 0.009 21 June, 2016 The JavaScript plugin: • Destructors no longer clobber $@ (RT #108646). Thanks to Oleg G for the patch. 0.008a 21 October, 2012 LWP 6 supports perl 5.8.7 once more, so we no longer require Bundle::LWP5_837. JE back end (0.009): • Window methods are now bound properly, eliminating errors with JE::Object::Proxy objects (RT #79855). Thanks to Nathan Chaney for the report. 0.008 4 December, 2011 The JavaScript plugin: • The JavaScript plugin now calls ->destroy on the back end when it has finished with it. This gives the back end a chance to destroy any circular references it might have. JE back end: • It now takes advantage of JE’s new JE::Destroyer module, to eliminate circular references. 0.007 26 March, 2011 Makefile.PL now requires Bundle::LWP5_837 instead of LWP on perl 5.8.7 and lower, since LWP 6 does not support 5.8.7. The JavaScript plugin: • An internal change that should not affect the interface: The JavaScript plugin no longer implements the screen object. WWW::Scripter now implements it, as should always have been the case. 0.006 18 January, 2010 The JavaScript plugin: • The docs have been updated to clarify that back ends’ event2sub and eval methods must set $@ on error and return normally. • Some more doc changes to reflect the current state of SpiderMonkey support. JE back end (0.007): • event2sub now sets $@ instead of dying if there is a syn- tax error. 0.005 14 February, 2010 The JavaScript plugin: • Incompatible changes: • set now expects a WWW::Scripter object as the first argument. • new_function, which used to offer no more functionality than set, now adds the function to all JS environments, including future ones (a bit like bind_classes). • New back_end method • The eval method is now public (it was there all along, but the docs were removed in the conversion from the Mech plugin to the Scripter plugin; the interface changed slightly in the process). • JE is now the default back end. SpiderMonkey used to be the back end, but there was never one available, so that made no difference. Now there is a SpiderMonkey back end (not included), but it is so full of bugs we need to wait a bit before flipping the switch back. JE back end (0.006): • A piece of JavaScript code calling a method on another global object no longer dies. This was broken by 0.004’s multiple-window clean-up. • Modified to make use of the plugin’s new back_end method, to reduce memory usage. 0.004 25 October, 2009 The JavaScript Plugin: • Scripts in frames now run in the context of the frame, not the top-level window. JE back end (0.005): • We now explicitly require version 0.032 of HTML::DOM::Inter- face. (This should have been added in the previous ver- sion.) 0.003 9 October, 2009 The JavaScript plugin: • Updated to work with HTML::DOM 0.032’s new event handler model. This fixes various bugs involving event handler prop- erties (‘theForm.onsubmit’). • Calling WWW::Scripter’s eval method would run the Java- Script code always in the main window, if when called from the WWW::Scripter object corresponding to a frame. This has been fixed. This is part of the solution to the frames prob- lem mentioned below. •‘require WWW::Scripter::Plugin::JavaScript’ no longer dies if WWW::Scripter is not already loaded. JE back end (0.004): • We now support those utterly useless HTML-generating meth- ods of string objects that have been part of JavaScript since the very beginning, and which have been added solely for completeness’ sake. • We now override JE’s exists method, so that collection prop- erties of the window object appear in scope and can be seen by hasOwnProperty. • Likewise updated to work with the new event handler model. • The scope of an event handler now includes the docu- ment object. • For those cases where HTML::DOM provides UTF-16 methods in addition to the usual ones, JavaScript now uses the UTF-16 versions. (This makes textNode.data.length equivalent to textNode.length.) • It used to be that frames with no scripts in them that were accessed by JavaScript code in the main window would share the global object with the main window. Also, window objects, if referenced by JavaScript variables in another frame, would continue to refer to the same global object when the frame was navigated. This mess has been mostly cleaned up. There are a few rough edges that will be ironed out in a future release. 0.002c 27 August, 2009 JE back end (0.003): • This release simply fixes a test to check for JE 0.035 instead of JE 0.034 before deciding not to skip a test. (The version has been changed as the module’s docs have changed.) 0.002b 25 August, 2009 JE back end: • It now turns on JE’s HTML mode (to support HTML comments embedded in JavaScript). Version 0.034 of JE is required for this feature to work. 0.002a 16 August, 2009 HTML::DOM 0.027 and WWW::Scripter 0.004 are now required. A bug fix in JE 0.033 causes the tests to trigger bugs in previ- ous versions of those two modules. 0.002 15 August, 2009 The JavaScript plugin: • Fixed the init callback interface to match the docs (it gets passed the WWW::Scripter object, not the plugin). • Fixed a bug introduced in 0.001 (the switch to WWW::Scripter) that caused the same JavaScript environ- ment to be used for all pages 0.001 5 April, 2009 First version. Just a renamed and tweaked version of the Mech- anize JavaScript plugin (see below). Revision history for WWW::Mechanize::Plugin::JavaScript and ::DOM 0.009c 11 March, 2009 The DOM plugin (0.013): • parent has been added to %WWW::Mechanize::Plugin::DOM::Window::Interface (RT #43582 again). 0.009b 11 March, 2009 An upload mistake. Please ignore. 0.009a 5 March, 2009 The DOM plugin (0.012): • window->top now actually returns the top window, rather than the parent. • window->parent has been added (RT #43582 again). 0.009 27 February, 2009 The DOM plugin (0.011): • Just doc fixes: The frame features are listed in ::Window, and a previously fixed bug has been deleted from the list. The JavaScript plugin: •  is supported in external JS libraries (RT #43582) and in javascript: URLs. • Trailing --> no longer requires // (RT #43582). • Line numbers are now correct after a