To-do:
. store the origin of a callback so
we can tell the user where it originated if it leaks
. Make the callback-leak warning configurable
. Make MozRepl::RemoteObject::Instance::DESTROY just
queue the id, and have MozRepl::RemoteObject call
repl.breakLink() with just the ids, reducing traffic
. Automatically load the AnyEvent backend if needed.
0.26 20110502
! Bugfix: Actually process the C<bufsize> parameter again
0.25 20110426
. Add CLEAR method to tied objects so now list-assignment
to a hash works:
%$foo = (Just => 'another', Javascript => 'Hacker');
$foo->{Just} # another
$foo->{Javascript} # Hacker
. Add the C<bufsize> parameter to ->install_bridge
for setting the Net::Telnet buffer size
. Don't list MozRepl::RemoteObject::Methods in carp()
. More method implementation moved to ::Methods
0.24 20110416
. Redo connect logic in ->setup, so that we handle cases
where MozRepl is unavailable gracefully.
0.23 20110415
. Fix test failures
. Postpone deprecation period of methods added to JS objects
a bit. All methods will remain until after 0.25.
0.22 20110411
. Added experimental AnyEvent-compatible backend MozRepl::AnyEvent
This backend does not yet support asynchronous execution. It
just plays well with other AnyEvent-enabled modules.
It is not automatically loaded.
! Start of deprecation cycle for methods injected to the JS objects.
->__xpath will be moved to MozRepl::RemoteObject::Util::xpath
Change
$obj->__xpath(...)
to
$obj->MozRepl::RemoteObject::Util::xpath( ... )
This makes the object cleaner and you shouldn't have many places
where you call C<< ->__xpath >> anyway, as it is not available on
most JS objects anyway.
This method will go away in 0.23.
0.21 20110109
. Remove a debugging help that crashed the module when it was called...
0.20 20110106
. Improve event sending/handling
. Add max_queue_size to limit queue backlog
. Add stress-test for queue backlog
. Collect statistics about roundtrips,callbacks,fetch,store
in $repl->{stats}
0.19 20101211
. Simplify Exporter usage
. Add ->constant() method to (lazily) fetch Javascript constants
and cache them on the Perl side of things.
. Add more tests to ensure that we have no memory cycles
0.18 20101122
. Add test for pop(), actually make pop() work
. Add test for splice(), actually make splice() work
+ Add as_list, an exportable function in MozRepl::RemoteObject,
that allows bulk-fetching of arrays.
0.17 20101120
. Added test for circular reference fixed in 0.16
. Added more support for command queueing. Destructors can now
be queued until program exit, repl shutdown or
until the next command is executed, whichever comes first.
+ Actually call the callback set up by ->__on_destroy
. Added a test that the __on_destroy callbacks get called
0.16 20101119
. Enable use_queue parameter (but leave it undocumented)
+ Fix memory leak when using ->declare. This should fix the messages
during global destruction.
0.15 20101021
. Filter object for only immediate properties. This means that inherited
properties don't show up anymore in keys %$obj or using exists. You
can still get at their values though.
See L<http://yuiblog.com/blog/2006/09/26/for-in-intrigue/> for a
discussion of filtering and why it should happen.
. Implement C<delete> (and tests) for hashes
0.14 20101017
. Fix ->__event() to create the event in the correct .document.
This fixes intermittent errors that were raised if (for example)
the Firefox Javascript Console was the topmost Firefox window.
. Add a test that checks that the Changes file has a well-formed date
for every version
0.13 20100810
. Squelch some warnings when global destruction pulls out the rug
from under our feet.
. Don't fetch results from Firefox if we don't need them.
STORE() in tied elements should not return a value.
0.12 20100625
. Fix bad unquoted passthrough of numbers with a leading zero. This
led to those numbers being interpreted as octal numbers.
Reported and diagnosed by Jess Robinson and James Mastros
. Document limitations of passthrough
+ Die with an informative message if we can't connect
0.11 20091130
. Don't carp() in ::TiedHash or ::TiedArray
. Added "launch" option to launch a mozrepl process
. This means we need IPC::Run as a prerequisite
0.10 20091126
. Add way to deregister callbacks to release the memory
taken up on the Perl side for them.
0.09 20091121
. Add tests for multiple bridge instances
. Multiple bridge instances work (except for some warnings
originating from MozRepl.pm)
. Some code cleanup
0.08 20091111
. Localize $@ in the destructor so we don't eat
exceptions.
. Allow for passing of multiple parameters in callbacks
0.07 20091109
. Always use our own JSON encoder on the Javascript side.
The native encoders don't output ASCII. This is sad,
but there seems to be a problem with the encodings along the way.
0.06 20091102
. Added __event() to send arbitrary events
0.05 20091031
. Implement callbacks/events
0.04 20091030
. Added exists functionality for hashes
. added $bridge->appinfo as a convenience function
0.03 20091029
! Fixed ->__xpath
! Fixed bad use of ->declare
* Use the stable but large encoding of 7-bit ASCII
for communication by switching to String.toSourceCode() on the
JS side.
0.02 20091027
* ->__xpath returned numbers instead of objects
* The object was split into two classes, one for bridge functionality
and one for instance functionality
* $bridge->declare() for declaring cached anonymous functions
0.01 20091018
. released on CPAN