<?xml version="1.0"?>
<rss version="2.0">
<channel>
<link>http://helma.org/wiki/Helma+NG/Metamethods/</link>
<title>helma.org/wiki/Helma NG/Metamethods</title>
<description>Updates for Page helma.org/wiki/Helma NG/Metamethods</description>
<pubDate>Thu, 24 May 2012 04:25:13 +0000</pubDate>
<item>
<title>Version 7</title>
<link>http://helma.org/wiki/Helma+NG/Metamethods/history.diff?v=7</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;1&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;=== Update: as of 2008/10/15, metamethod support has been removed from Helma. It had too much of a performance impact, and most things can be achieved by other means, often reducing complexity.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;2&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Wed, 15 Oct 2008 00:41:45 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 6</title>
<link>http://helma.org/wiki/Helma+NG/Metamethods/history.diff?v=6</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;13&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;strike&amp;gt;Currently &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;Currently &lt;/span&gt;you have to manually patch and build Rhino to use Metamethods using the patch attached to this page.&lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;/strike&amp;gt; The patch is in the current svn/git snapshots, but of course you can still use the patch to build it by yourself. &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;14&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;15&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;lt;b&amp;gt;Update 1:&amp;lt;/b&amp;gt; The patch is in the current svn/git snapshots, but of course you can still use the patch to build it by yourself. &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;16&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;17&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;lt;b&amp;gt;Update 2:&amp;lt;/b&amp;gt; Due to a very silly bug, __set__ methods were called without the second argument in the initial version. This is fixed in the new patch as well as git/svn repositories.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Thu, 04 Sep 2008 14:24:23 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 5</title>
<link>http://helma.org/wiki/Helma+NG/Metamethods/history.diff?v=5</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;13&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;Currently &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;lt;strike&amp;gt;Currently &lt;/span&gt;you have to manually patch and build Rhino to use Metamethods using the patch attached to this page&lt;span class=&#39;diffadded&#39;&gt;.&amp;lt;/strike&amp;gt; The patch is in the current svn/git snapshots, but of course you can still use the patch to build it by yourself&lt;/span&gt;. &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Thu, 04 Sep 2008 11:37:51 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 4</title>
<link>http://helma.org/wiki/Helma+NG/Metamethods/history.diff?v=4</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;1&lt;/td&gt;&lt;td&gt;Since I have gotten a more frustrated with *JSAdapter|http://blogs.sun.com/sundararajan/entry/self_javascript_and_jsadapter* lately, I have started working on a new metaprogramming extension to Rhino which I call Metamethods. It is based on *JOMP|http://www.bias2build.com/thesis/javascript_mop_expanded.html*, but looks for methods in the target object itself rather than a separate meta object. It is also thread-safe and adds a method to &lt;span class=&#39;diffremoved&#39;&gt;controll &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;control behavior of &lt;/span&gt;the equals operator (==).&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Wed, 03 Sep 2008 22:16:45 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 3</title>
<link>http://helma.org/wiki/Helma+NG/Metamethods/history.diff?v=3</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;3&lt;/td&gt;&lt;td&gt;In detail, Metamethods looks for the following &lt;span class=&#39;diffremoved&#39;&gt;methods:&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;methods in a JavaScript object:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Wed, 03 Sep 2008 22:12:45 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 2</title>
<link>http://helma.org/wiki/Helma+NG/Metamethods/history.diff?v=2</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;15&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;lt;% this.attachments %&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;16&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;17&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;This patch is against the current Rhino CVS snapshot. Let me know if it fails to apply to earlier versions of Rhino.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Wed, 03 Sep 2008 22:12:17 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 1</title>
<link>http://helma.org/wiki/Helma+NG/Metamethods/history.diff?v=1</link>
<description>&lt;ul class=&#39;diffproperties&#39;&gt;&lt;li&gt;Set &lt;span class=&#39;diffpropname&#39;&gt;tags&lt;/span&gt; to &lt;span class=&#39;diffadded&#39;&gt;metaprogramming&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;1&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;Since I have gotten a more frustrated with *JSAdapter|http://blogs.sun.com/sundararajan/entry/self_javascript_and_jsadapter* lately, I have started working on a new metaprogramming extension to Rhino which I call Metamethods. It is based on *JOMP|http://www.bias2build.com/thesis/javascript_mop_expanded.html*, but looks for methods in the target object itself rather than a separate meta object. It is also thread-safe and adds a method to controll the equals operator (==).&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;2&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;3&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;In detail, Metamethods looks for the following methods:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;4&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;5&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;* &amp;lt;b&amp;gt;__has__&amp;lt;/b&amp;gt;(property): this method is called when checking for a property&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;6&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;* &amp;lt;b&amp;gt;__get__&amp;lt;/b&amp;gt;(property): this method is called when getting a property&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;7&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;* &amp;lt;b&amp;gt;__set__&amp;lt;/b&amp;gt;(property, value): this method is called when setting a property&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;8&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;* &amp;lt;b&amp;gt;__delete__&amp;lt;/b&amp;gt;(property): this method is called when deleting a property&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;9&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;* &amp;lt;b&amp;gt;__getIds__&amp;lt;/b&amp;gt;(): this method is called when iterating over property ids&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;10&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;* &amp;lt;b&amp;gt;__hasInstance__&amp;lt;/b&amp;gt;(object): this method is called when the instanceof operator is used&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;11&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;* &amp;lt;b&amp;gt;__equals__&amp;lt;/b&amp;gt;(object): this method is called when the == operator is used&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;12&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;13&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;Currently you have to manually patch and build Rhino to use Metamethods using the patch attached to this page. &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Wed, 03 Sep 2008 22:10:40 +0000</pubDate>
<author>hannes</author>
</item>
</channel>
</rss>

