old_contents: //////////////////////////////////////////////////////////////////////////////////////
  //
  //  The MIT License (MIT)
  //
  //  Copyright (c) 2015-present, Dom Chen.
  //  All rights reserved.
  //
  //  Permission is hereby granted, free of charge, to any person obtaining a copy of
  //  this software and associated documentation files (the "Software"), to deal in the
  //  Software without restriction, including without limitation the rights to use, copy,
  //  modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
  //  and to permit persons to whom the Software is furnished to do so, subject to the
  //  following conditions:
  //
  //      The above copyright notice and this permission notice shall be included in all
  //      copies or substantial portions of the Software.
  //
  //  THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
  //  INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  //  PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  //  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  //  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  //  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  //
  //////////////////////////////////////////////////////////////////////////////////////
  
  var __reflect = this && this.__reflect || function (p, c, t) {
      p.__class__ = c, t ? t.push(c) : t = [c], p.__types__ = p.__types__ ? t.concat(p.__types__) : t;
  }
  
  
  var __accessor = (this && this.__accessor) || function (o, p, g, s) {
      Object.defineProperty(o, p, {configurable: true, enumerable: true, get: g, set: s});
  };
new_contents: //////////////////////////////////////////////////////////////////////////////////////
  //
  //  The MIT License (MIT)
  //
  //  Copyright (c) 2015-present, Dom Chen.
  //  All rights reserved.
  //
  //  Permission is hereby granted, free of charge, to any person obtaining a copy of
  //  this software and associated documentation files (the "Software"), to deal in the
  //  Software without restriction, including without limitation the rights to use, copy,
  //  modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
  //  and to permit persons to whom the Software is furnished to do so, subject to the
  //  following conditions:
  //
  //      The above copyright notice and this permission notice shall be included in all
  //      copies or substantial portions of the Software.
  //
  //  THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
  //  INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  //  PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  //  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  //  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  //  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  //
  //////////////////////////////////////////////////////////////////////////////////////
  
  var __reflect = (this && this.__reflect) || function (p, c, t) {
      p.__class__ = c, t ? t.push(c) : t = [c], p.__types__ = p.__types__ ? t.concat(p.__types__) : t;
  }
  
  
  var __accessor = (this && this.__accessor) || function (o, p, g, s) {
      Object.defineProperty(o, p, {configurable: true, enumerable: true, get: g, set: s});
  };
subject: Update the __reflect function.