define(function (require) { var EventObject = require("./EventObject.js"); var extension = require("./extensionPort.js"); var Storage = function () { var __ = this; var st = window.storage|| {}; EventObject.apply(this, Array.prototype.slice.call(arguments)); this.get = function (key) { return st[key] || ""; }; this.put = function (key, value) { if (typeof (value) !== 'string') { value = JSON.stringify(value); } st[key] = value + ''; var messageDetail = {}; messageDetail[key] = value; extension.sendMessage({ action: "setStorage", detail: messageDetail }); }; this.remove = function (key) { delete st[key]; }; this.obj = function (key) { var value = __.get(key); if (!value) return null; return JSON.parse(value); } }; Storage.prototype = Object.create(EventObject); Storage.constructor = Storage; return new Storage(); });