code: function copyOption(target, option, defaultOption) {
          if (target === void 0) { target = {}; }
          if (defaultOption) {
              target.freeze = defaultOption.freeze;
              target.freezeInput = defaultOption.freezeInput;
              target.freezeOutput = defaultOption.freezeOutput;
              target.useConstructor = defaultOption.useConstructor;
              target.copyFunc = defaultOption.copyFunc;
              target.disableAllCheck = defaultOption.disableAllCheck;
              target.disableHasReturnCheck = defaultOption.disableHasReturnCheck;
              target.disableExtraStatementCheck =
                  defaultOption.disableExtraStatementCheck;
              target.maxGetPropCacheSize = defaultOption.maxGetPropCacheSize;
              target.ignoreIfNoChange = defaultOption.ignoreIfNoChange;
          }
          if (option) {
              if (option.freeze != undefined) {
                  target.freeze = option.freeze;
              }
              if (option.freezeInput != undefined) {
                  target.freezeInput = option.freezeInput;
              }
              if (option.freezeOutput != undefined) {
                  target.freezeOutput = option.freezeOutput;
              }
              if (option.useConstructor != undefined) {
                  target.useConstructor = option.useConstructor;
              }
              if (option.copyFunc != undefined) {
                  target.copyFunc = option.copyFunc;
              }
              if (option.disableAllCheck != undefined) {
                  target.disableAllCheck = option.disableAllCheck;
              }
              if (option.disableHasReturnCheck != undefined) {
                  target.disableHasReturnCheck = option.disableHasReturnCheck;
              }
              if (option.disableExtraStatementCheck != undefined) {
                  target.disableExtraStatementCheck = option.disableExtraStatementCheck;
              }
              if (option.maxGetPropCacheSize != undefined) {
                  target.maxGetPropCacheSize = option.maxGetPropCacheSize;
              }
              if (option.ignoreIfNoChange != undefined) {
                  target.ignoreIfNoChange = option.ignoreIfNoChange;
              }
          }
          return target;
      }
docs: For performance