define(function (require, exports, module) {
    "use strict";

    var derive = require("base/derive");
    var $ = require("boost/$");
    var boost = require("boost/boost");
    var assert = require("base/assert");
    var webMonitor = require("boost/webMonitor");

    var WebDebugger = derive(Object, {
        _active: false,

        /**
         * 由web与boost在合适时机设值、取消值
         */
        doNotUpdateWeb: false, //web改boost同步即触发，改完即可直接置回false（如果交给boost中置回，则入口太多，容易出错）
        doNotUpdateBoostOnce: false, //boost改web时，web中observer回调非同步触发，故只能web中置回，好在入口只有一处，容易把控

        /**
         * 需在创建任何元素之前调用
         */
        active: function () {
            assert(!this._active, "web debugger already active");
            //TODO: assert no element was created before

            this._active = true;
            document.documentElement.style.visibility = 'hidden';
            webMonitor.start();
        },
        isActive: function () {
            return this._active;
        }
    });

    module.exports = new WebDebugger();
});

@@ -909,16 +909,67 @@
      %7D,%0A
+        //TODO: %E6%9C%89%E4%BA%9B%E6%A0%B7%E5%BC%8F%E6%B2%A1%E6%9C%89%E6%9B%B4%E6%96%B0%E8%87%B3dom%E4%B8%8A%EF%BC%8C%E6%AF%94%E5%A6%82follow%E7%9A%84%E9%A2%9C%E8%89%B2%E3%80%81%E6%B5%8B%E8%AF%95%E6%8C%89%E9%92%AE%E7%9A%84%E8%83%8C%E6%99%AF%E8%89%B2%0A
         

add todo