arguments[0] = Element.prototype.querySelector.call(document.body, "#gadget_url")
HTMLElement.prototype.removeAttribute.call(arguments[0], "value")
or:
arguments[1] = Object.prototype.__lookupSetter__.call(HTMLInputElement.prototype, "value")
arguments[1].call(arguments[0], String())
note that when changing the "value" attribute's value through javascript, chrome browsers may behave very erratically if using the back button to return to the page (even if the cache is cleared, or you are testing a page on your hard disk, i.e., the page is indeed reloaded!). The new input value attribute will indeed be set to a new value (you can see the new value in F12 Developer Tools or can query it programmatically thru javascript), but the browser will still visually display the old value. It seems to happen if you set the value by using "value = ''" or by using the "_lookupSetter_", which is the same thing, or if you are creating the input on the fly with a "value" attribute present and a value assigned to it:
SomeParentNode.innerHTML = '<input class="jump-input" type="text" value="' + Math.random() + '">'
Use removeAttribute / setAttribute instead. however, this won't help if you type something into the input field manually, then return to the page by using the back button, 'cause the browser prefills the value you typed before (even if cache cleared or using a local page on your hard disk), so you need to wait until it does that before removing the attribute:
setTimeout.call(self, function()
{
//Element.prototype.setAttribute.call(arguments[0], "value", "")
arguments[0].value = ""
}, 1, arguments[0])
Dom.get("gadget_url").set("value","");...I'm not quite sure though