package SL::Template::Plugin::JavaScript;
 
-use base qw( Template::Plugin::Filter );
+use base qw( Template::Plugin );
+use Template::Plugin;
 
 use strict;
 
-my $cached_instance;
-
 sub new {
-  my $class = shift;
-
-  return $cached_instance ||= $class->SUPER::new(@_);
-}
-
-sub init {
-  my $self = shift;
-
-  $self->install_filter($self->{ _ARGS }->[0] || 'js');
+  my ($class, $context, @args) = @_;
 
-  return $self;
+  return bless {
+    CONTEXT => $context,
+  }, $class;
 }
 
 #
   return $text;
 }
 
-sub filter {
-  my ($self, $text) = @_;
-  return $self->escape($text);
-}
-
 sub replace_with {
   return _replace_helper('replaceWith', @_);
 }
   <input type="submit" value="Delete"
          onclick="if (confirm('Do you really want to delete this: [% JavaScript.escape(obj.description) %]') return true; else return false;">
 
-You can also use the filter syntax instead:
-
-  <input type="submit" value="Delete"
-         onclick="if (confirm('Do you really want to delete this: [% obj.description | js %]') return true; else return false;">
-
 =item C<replace_with $selector, $template, %locals>
 
 Returns code replacing the DOM elements matched by C<$selector> with