mirror of
				https://scm.univ-tours.fr/22107988t/rappaurio-sae501_502.git
				synced 2025-11-04 00:55:22 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			2052 lines
		
	
	
		
			538 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			2052 lines
		
	
	
		
			538 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style>
 | 
						||
	.KEYW {color: #933;}
 | 
						||
	.COMM {color: #bbb; font-style: italic;}
 | 
						||
	.NUMB {color: #393;}
 | 
						||
	.STRN {color: #393;}
 | 
						||
	.REGX {color: #339;}
 | 
						||
	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
 | 
						||
	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN"></span><span class="WHIT">
 | 
						||
<span class='line'>  2</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>  3</span>  * @name	CeL code reorganize function
 | 
						||
<span class='line'>  4</span>  * @fileoverview
 | 
						||
<span class='line'>  5</span>  * 本檔案包含了程式碼重整重構用的 functions。
 | 
						||
<span class='line'>  6</span>  * @since	
 | 
						||
<span class='line'>  7</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'>  8</span> 
 | 
						||
<span class='line'>  9</span> </span><span class="COMM">/*
 | 
						||
<span class='line'> 10</span> parse code
 | 
						||
<span class='line'> 11</span> use ISO-14977: Extended Backus–Naur Form (EBNF)
 | 
						||
<span class='line'> 12</span> http://zh.wikipedia.org/wiki/%E6%89%A9%E5%B1%95%E5%B7%B4%E7%A7%91%E6%96%AF%E8%8C%83%E5%BC%8F
 | 
						||
<span class='line'> 13</span> 
 | 
						||
<span class='line'> 14</span> http://blog.zhaojie.me/2010/11/narcissus-javascript-parser.html
 | 
						||
<span class='line'> 15</span> Narcissus是一個JavaScript引擎,完全使用JavaScript編寫,不過利用了SpiderMonkey的一些擴展,因此無法直接在僅僅實現了ECMAScript 3的引擎上執行(例如各瀏覽器)。
 | 
						||
<span class='line'> 16</span> http://en.wikipedia.org/wiki/Narcissus_%28JavaScript_engine%29
 | 
						||
<span class='line'> 17</span> http://hax.iteye.com/blog/181358
 | 
						||
<span class='line'> 18</span> 
 | 
						||
<span class='line'> 19</span> */</span><span class="WHIT">
 | 
						||
<span class='line'> 20</span> 
 | 
						||
<span class='line'> 21</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">CeL</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'> 22</span> 
 | 
						||
<span class='line'> 23</span> </span><span class="COMM">/**
 | 
						||
<span class='line'> 24</span>  * 本 module 之 name(id),<span style="text-decoration:line-through;">不設定時會從呼叫時之 path 取得</span>。
 | 
						||
<span class='line'> 25</span>  * @type	String
 | 
						||
<span class='line'> 26</span>  * @constant
 | 
						||
<span class='line'> 27</span>  * @inner
 | 
						||
<span class='line'> 28</span>  * @ignore
 | 
						||
<span class='line'> 29</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'> 30</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">module_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'code.reorganize'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'> 31</span> 
 | 
						||
<span class='line'> 32</span> </span><span class="COMM">//===================================================</span><span class="WHIT">
 | 
						||
<span class='line'> 33</span> </span><span class="COMM">/**
 | 
						||
<span class='line'> 34</span>  * 若欲 include 整個 module 時,需囊括之 code。
 | 
						||
<span class='line'> 35</span>  * @type	Function
 | 
						||
<span class='line'> 36</span>  * @param	{Function} library_namespace	namespace of library
 | 
						||
<span class='line'> 37</span>  * @param	load_arguments	呼叫時之 argument(s)
 | 
						||
<span class='line'> 38</span>  * @return
 | 
						||
<span class='line'> 39</span>  * @name	CeL.code.reorganize
 | 
						||
<span class='line'> 40</span>  * @constant
 | 
						||
<span class='line'> 41</span>  * @inner
 | 
						||
<span class='line'> 42</span>  * @ignore
 | 
						||
<span class='line'> 43</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'> 44</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">code_for_including</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">load_arguments</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'> 45</span> 
 | 
						||
<span class='line'> 46</span> 
 | 
						||
<span class='line'> 47</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="WHIT">
 | 
						||
<span class='line'> 48</span> </span><span class="COMM">/**
 | 
						||
<span class='line'> 49</span>  * null module constructor
 | 
						||
<span class='line'> 50</span>  * @class 程式碼重整重構相關之 functions。
 | 
						||
<span class='line'> 51</span>  * @constructor
 | 
						||
<span class='line'> 52</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'> 53</span> </span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'> 54</span> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'> 55</span> </span><span class="WHIT">	</span><span class="COMM">//	null module constructor</span><span class="WHIT">
 | 
						||
<span class='line'> 56</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'> 57</span> 
 | 
						||
<span class='line'> 58</span> </span><span class="COMM">/**
 | 
						||
<span class='line'> 59</span>  * for JSDT: 有 prototype 才會將之當作 Class
 | 
						||
<span class='line'> 60</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'> 61</span> </span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'> 62</span> </span><span class="PUNC">.</span><span class="NAME">prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'> 63</span> 
 | 
						||
<span class='line'> 64</span> 
 | 
						||
<span class='line'> 65</span> 
 | 
						||
<span class='line'> 66</span> 
 | 
						||
<span class='line'> 67</span> </span><span class="COMM">//class public interface	---------------------------</span><span class="WHIT">
 | 
						||
<span class='line'> 68</span> 
 | 
						||
<span class='line'> 69</span> </span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'> 70</span> </span><span class="PUNC">.</span><span class="WHIT">
 | 
						||
<span class='line'> 71</span> </span><span class="COMM">/**
 | 
						||
<span class='line'> 72</span>  * 取得[script_filename].wsf中不包括自己([script_filename].js),其餘所有 .js 的code。
 | 
						||
<span class='line'> 73</span>  * @param {String} script_filename	script filename
 | 
						||
<span class='line'> 74</span>  * @return
 | 
						||
<span class='line'> 75</span>  * @requires ScriptName,simpleRead
 | 
						||
<span class='line'> 76</span>  * @deprecated	若想在低版本中利用eval(get_all_functions(ScriptName))來補足,有時會出現奇怪的現象,還是別用好了。
 | 
						||
<span class='line'> 77</span>  * @memberOf CeL.code.reorganize
 | 
						||
<span class='line'> 78</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'> 79</span> </span><span class="NAME">get_all_functions</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">script_filename</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'> 80</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">script_filename</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'> 81</span> </span><span class="WHIT">		</span><span class="NAME">script_filename</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ScriptName</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'> 82</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">simpleRead</span><span class="PUNC">(</span><span class="NAME">script_filename</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.wsf'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT">
 | 
						||
<span class='line'> 83</span> </span><span class="WHIT">			</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/[^\\\/:*?"<>|'\r\n]+\.js/gi</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">script_filename</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.js'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'> 84</span> 
 | 
						||
<span class='line'> 85</span> </span><span class="WHIT">	</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'> 86</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">script_filename</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.js'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">simpleRead</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'> 87</span> </span><span class="WHIT">			</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'> 88</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'> 89</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'> 90</span> 
 | 
						||
<span class='line'> 91</span> 
 | 
						||
<span class='line'> 92</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">JS_reserved_word</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'> 93</span> </span><span class="WHIT">		</span><span class="NAME">Keyword</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'break,do,instanceof,typeof,case,else,new,var,catch,finally,return,void,continue,for,switch,while,debugger,function,this,with,default,if,throw,delete,in,try'</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'> 94</span> </span><span class="WHIT">		</span><span class="NAME">FutureReservedWord</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'class,enum,extends,super,const,export,import'</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'> 95</span> </span><span class="WHIT">		</span><span class="NAME">NullLiteral</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'null'</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'> 96</span> </span><span class="WHIT">		</span><span class="NAME">BooleanLiteral</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'true,false'</span><span class="WHIT">
 | 
						||
<span class='line'> 97</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'> 98</span> 
 | 
						||
<span class='line'> 99</span> 
 | 
						||
<span class='line'>100</span> </span><span class="COMM">//var OK = add_code('alert,simpleWrite', ['alert', 'NewLine', 'get_all_functions']);if (typeof OK == 'string') simpleWrite('try.js', OK), alert('done'); else alert('OK:' + OK);</span><span class="WHIT">
 | 
						||
<span class='line'>101</span> </span><span class="COMM">/*
 | 
						||
<span class='line'>102</span> {
 | 
						||
<span class='line'>103</span> 	var ss = [23, 23.456, undefined, Attribute, null, Array, '567', 'abc'], l = 80, repF = 'tmp.txt', sa = ss, st = add_code('', ['ss']), t;
 | 
						||
<span class='line'>104</span> 	ss = '(reseted)'; try { eval(st); } catch (e) { } t = (sa === ss) + ': ' + typeof sa + '→' + typeof ss + '\n';
 | 
						||
<span class='line'>105</span> 	simpleWrite(repF, t + sa + '\n→\n' + ss + '\n\n◎eval:\n' + st);
 | 
						||
<span class='line'>106</span> 	alert(t + (sa = '' + sa, sa.length < l ? sa : sa.slice(0, l / 2) + '\n..' + sa.slice(sa.length - l / 2)) + '\n→\n' + (ss = '' + ss, ss.length < l ? ss : ss.slice(0, l / 2) + '\n..' + ss.slice(ss.length - l / 2)) + '\n\n' + (ss = '' + st, ss.length < l ? ss : ss.slice(0, 200) + '\n..\n' + ss.slice(ss.length - 200)));
 | 
						||
<span class='line'>107</span> }
 | 
						||
<span class='line'>108</span> */</span><span class="WHIT">
 | 
						||
<span class='line'>109</span> 
 | 
						||
<span class='line'>110</span> </span><span class="COMM">/*
 | 
						||
<span class='line'>111</span> 加入識別格式之方法:
 | 
						||
<span class='line'>112</span> 
 | 
						||
<span class='line'>113</span> //	from function.js	-------------------------------------------------------------------
 | 
						||
<span class='line'>114</span> 
 | 
						||
<span class='line'>115</span> //e.g.,
 | 
						||
<span class='line'>116</span> //	[function.js](f1,f2,'string'	//	'string'或"string"中包含的需要是完整的敘述句
 | 
						||
<span class='line'>117</span> //	number var,string var,object var,date var,undefined  var)
 | 
						||
<span class='line'>118</span> 
 | 
						||
<span class='line'>119</span> //e.g.,
 | 
						||
<span class='line'>120</span> //	[function.js](OS,NewLine,dirSp,dirSpR,'var ScriptName=getScriptName();',ForReading,ForWriting,ForAppending,TristateUseDefault,TristateTrue,TristateFalse,WshShell,fso,args,'initWScriptObj();',initWScriptObj,setTool,JSalert,Str2Date,Date2Str,decplaces,dQuote,set_obj_value,getScriptFullName,getScriptName,'setTool();',WinEnvironment,SpecialFolder,Network,NetDrive,NetPrinter,getEnvironment,'getEnvironment();',dateUTCdiff,gDate)
 | 
						||
<span class='line'>121</span> //e.g.,
 | 
						||
<span class='line'>122</span> //	[function.js]("var NewLine='\n',OS='unix',dirSp=dirSpR='/';",dQuote,setTool,product,decplaces,countS,getText,turnUnicode,trimStr_,trimStr,StrToDate,DateToStr,reducePath,getPathOnly,getFN,getFP,dBasePath,trigger,setTopP,setAstatusOS,setAstatus,setAstatusOver,setAstatusOut,doAlertResize,doAlertInit,doAlert,doAlertAccess,doAlertScroll,setCookie,getCookie,scrollTo,disableKM,setCookieS,*disabledKM=0;,scrollToXY,scrollToInterval,scrollToOK,doAlertDivName,doAlertOldScrollLocation,parse_Function,dealPopup,sPopP,sPopF,sPopInit,sPopInit,sPop,setTextT,setText)
 | 
						||
<span class='line'>123</span> 
 | 
						||
<span class='line'>124</span> ..(inclide code)
 | 
						||
<span class='line'>125</span> //	[function.js]End	-------------------------------------------------------------------
 | 
						||
<span class='line'>126</span> //	↑from function.js	-------------------------------------------------------------------
 | 
						||
<span class='line'>127</span> 
 | 
						||
<span class='line'>128</span> 
 | 
						||
<span class='line'>129</span> TODO:
 | 
						||
<span class='line'>130</span> .htm 加入 .replace(/\//g,'\\/')
 | 
						||
<span class='line'>131</span> */</span><span class="WHIT">
 | 
						||
<span class='line'>132</span> </span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'>133</span> </span><span class="PUNC">.</span><span class="WHIT">
 | 
						||
<span class='line'>134</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>135</span>  * 將各 function 加入檔案中,可做成 HTML 亦可用之格式。
 | 
						||
<span class='line'>136</span>  * @example
 | 
						||
<span class='line'>137</span>  * add_code('複製 -backup.js');
 | 
						||
<span class='line'>138</span>  * @param file_name	file name (list)
 | 
						||
<span class='line'>139</span>  * @param Vlist	多加添的 function/various list
 | 
						||
<span class='line'>140</span>  * @param {String} start_string	start string
 | 
						||
<span class='line'>141</span>  * @param {String} end_string	ending string
 | 
						||
<span class='line'>142</span>  * @returns
 | 
						||
<span class='line'>143</span>  * @request	NewLine,is_file,simpleRead,autodetectEncode,generate_code,JSalert,setTool,*setTool();
 | 
						||
<span class='line'>144</span>  * @memberOf	CeL.code.reorganize
 | 
						||
<span class='line'>145</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'>146</span> </span><span class="NAME">add_code</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file_name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Vlist</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">start_string</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">end_string</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>147</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">start_string</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>148</span> </span><span class="WHIT">		</span><span class="NAME">start_string</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'//	['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">library_namespace.Class</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>149</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">end_string</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>150</span> </span><span class="WHIT">		</span><span class="NAME">end_string</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">start_string</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'End'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>151</span> </span><span class="WHIT">	</span><span class="COMM">//alert(is_file(FN)+'\n'+start_string+'\n'+end_string);</span><span class="WHIT">
 | 
						||
<span class='line'>152</span> 
 | 
						||
<span class='line'>153</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">file_name</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>154</span> </span><span class="WHIT">		</span><span class="NAME">file_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">is_file</span><span class="PUNC">(</span><span class="NAME">file_name</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">file_name</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">start_string</span><span class="WHIT">
 | 
						||
<span class='line'>155</span> </span><span class="WHIT">				</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file_name</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">file_name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="WHIT">
 | 
						||
<span class='line'>156</span> </span><span class="WHIT">				</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">end_string</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>157</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">Vlist</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>158</span> </span><span class="WHIT">		</span><span class="NAME">Vlist</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">Vlist</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>159</span> </span><span class="WHIT">	</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">Vlist</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>160</span> </span><span class="WHIT">		</span><span class="NAME">Vlist</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>161</span> 
 | 
						||
<span class='line'>162</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">F</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">A</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">start</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">end</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">code_head</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">OK</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>163</span> </span><span class="WHIT">	</span><span class="COMM">// 「」『』【】〈〉《》〔〕{}︵︶︹︺︷︸︻︼︿﹀︽︾﹁﹂﹃﹄()「」『』‘’“”〝〞‵′</span><span class="WHIT">
 | 
						||
<span class='line'>164</span> </span><span class="WHIT">	</span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'()[]{}<>\u300c\u300d\u300e\u300f\u3010\u3011\u3008\u3009\u300a\u300b\u3014\u3015\uff5b\uff5d\ufe35\ufe36\ufe39\ufe3a\ufe37\ufe38\ufe3b\ufe3c\ufe3f\ufe40\ufe3d\ufe3e\ufe41\ufe42\ufe43\ufe44\uff08\uff09\u300c\u300d\u300e\u300f\u2018\u2019\u201c\u201d\u301d\u301e\u2035\u2032'</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>165</span> </span><span class="WHIT">	</span><span class="NAME">end_char</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">req</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">direct_input</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'*'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">tmpExt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'.tmp'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">encoding</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">oriC</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>166</span> 
 | 
						||
<span class='line'>167</span> 
 | 
						||
<span class='line'>168</span> </span><span class="WHIT">	</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">file_name</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>169</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">oriC</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">is_file</span><span class="PUNC">(</span><span class="NAME">file_name</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">simpleRead</span><span class="PUNC">(</span><span class="NAME">file_name</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>170</span> </span><span class="WHIT">				</span><span class="NAME">encoding</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">autodetectEncode</span><span class="PUNC">(</span><span class="NAME">file_name</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">file_name</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">a</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>171</span> </span><span class="WHIT">			</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>172</span> </span><span class="WHIT">		</span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dones</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">doneS</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>173</span> </span><span class="WHIT">		</span><span class="COMM">//sl(a.slice(0,200));</span><span class="WHIT">
 | 
						||
<span class='line'>174</span> 
 | 
						||
<span class='line'>175</span> </span><span class="COMM">/*	判斷 new_line 這段,將三種資料作比較就能知道為何這麼搞。
 | 
						||
<span class='line'>176</span> 
 | 
						||
<span class='line'>177</span> ~\r:
 | 
						||
<span class='line'>178</span> 
 | 
						||
<span class='line'>179</span> \r	123
 | 
						||
<span class='line'>180</span> \n	1
 | 
						||
<span class='line'>181</span> \r\n	2
 | 
						||
<span class='line'>182</span> \n-\r	-120
 | 
						||
<span class='line'>183</span> 
 | 
						||
<span class='line'>184</span> 
 | 
						||
<span class='line'>185</span> ~\n:
 | 
						||
<span class='line'>186</span> 
 | 
						||
<span class='line'>187</span> \r	1
 | 
						||
<span class='line'>188</span> \n	123
 | 
						||
<span class='line'>189</span> \r\n	2
 | 
						||
<span class='line'>190</span> \n-\r	120
 | 
						||
<span class='line'>191</span> 
 | 
						||
<span class='line'>192</span> 
 | 
						||
<span class='line'>193</span> ~\r\n:
 | 
						||
<span class='line'>194</span> 
 | 
						||
<span class='line'>195</span> \r	123
 | 
						||
<span class='line'>196</span> \n	123
 | 
						||
<span class='line'>197</span> \r\n	123
 | 
						||
<span class='line'>198</span> \n-\r	-2~2
 | 
						||
<span class='line'>199</span> */</span><span class="WHIT">
 | 
						||
<span class='line'>200</span> </span><span class="WHIT">		</span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.replace</span><span class="PUNC">(</span><span class="REGX">/[^\n]+/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>201</span> </span><span class="WHIT">		</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.replace</span><span class="PUNC">(</span><span class="REGX">/[^\r]+/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>202</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>203</span> </span><span class="WHIT">			</span><span class="NAME">alert</span><span class="PUNC">(</span><span class="STRN">"There're some encoding problems in the file:\n"</span><span class="WHIT">
 | 
						||
<span class='line'>204</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">file_name</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'\n\\n: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'\n\\r: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>205</span> </span><span class="WHIT">			</span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.max</span><span class="PUNC">(</span><span class="NAME">new_line</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">10</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.abs</span><span class="PUNC">(</span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'\r\n'</span><span class="WHIT">
 | 
						||
<span class='line'>206</span> </span><span class="WHIT">					</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'\n'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'\r'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>207</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>208</span> </span><span class="WHIT">			</span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'\r\n'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'\n'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'\r'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>209</span> 
 | 
						||
<span class='line'>210</span> </span><span class="WHIT">		</span><span class="COMM">//sl(a.indexOf(start_string)+'\n'+start_string+'\n'+a.slice(0,200));</span><span class="WHIT">
 | 
						||
<span class='line'>211</span> </span><span class="WHIT">		</span><span class="COMM">// TODO: a=a.replace(/(startReg)(.*?)(endReg)/g,function($0,$1,$2,$3){.. return $1+~+$3;});</span><span class="WHIT">
 | 
						||
<span class='line'>212</span> </span><span class="WHIT">		</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">start</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.indexOf</span><span class="PUNC">(</span><span class="NAME">start_string</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT">
 | 
						||
<span class='line'>213</span> </span><span class="WHIT">				</span><span class="COMM">// &&(end=a.indexOf(end_string,start+start_string.length))!=-1</span><span class="WHIT">
 | 
						||
<span class='line'>214</span> </span><span class="WHIT">				</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>215</span> </span><span class="WHIT">			</span><span class="COMM">//	initial reset</span><span class="WHIT">
 | 
						||
<span class='line'>216</span> </span><span class="WHIT">			</span><span class="NAME">code_head</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">codeText</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">end_char</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>217</span> </span><span class="WHIT">			</span><span class="NAME">req</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>218</span> </span><span class="WHIT">			</span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>219</span> </span><span class="WHIT">			</span><span class="COMM">//	判斷 end index</span><span class="WHIT">
 | 
						||
<span class='line'>220</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">end</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.indexOf</span><span class="PUNC">(</span><span class="NAME">end_string</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">start</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">start_string.length</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>221</span> </span><span class="WHIT">				</span><span class="NAME">alert</span><span class="PUNC">(</span><span class="STRN">'add_code: There is start mark without end mark!\nend_string:\n'</span><span class="WHIT">
 | 
						||
<span class='line'>222</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">end_string</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>223</span> </span><span class="WHIT">				</span><span class="COMM">//	未找到格式則 skip</span><span class="WHIT">
 | 
						||
<span class='line'>224</span> </span><span class="WHIT">				</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>225</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>226</span> </span><span class="WHIT">			</span><span class="COMM">//	b=inner text</span><span class="WHIT">
 | 
						||
<span class='line'>227</span> </span><span class="WHIT">			</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.slice</span><span class="PUNC">(</span><span class="NAME">start</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">start_string.length</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">end</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>228</span> </span><span class="WHIT">			</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">b.split</span><span class="PUNC">(</span><span class="NAME">new_line</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//b=b.split(new_line=b.indexOf('\r\n')!=-1?'\r\n':b.indexOf('\n')!=-1?'\n':'\r');	//	test檔案型式:DOS or UNIX.最後一位元已被split掉</span><span class="WHIT">
 | 
						||
<span class='line'>229</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/^\s*([^\w])/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>230</span> </span><span class="WHIT">				</span><span class="NAME">code_head</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">RegExp.lastIndex</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>231</span> </span><span class="WHIT">				</span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NAME">RegExp.lastIndex</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>232</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">s.indexOf</span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>233</span> </span><span class="WHIT">					</span><span class="NAME">end_char</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s.charAt</span><span class="PUNC">(</span><span class="NAME">s.indexOf</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>234</span> </span><span class="WHIT">				</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>235</span> </span><span class="WHIT">					</span><span class="NAME">end_char</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>236</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>237</span> </span><span class="WHIT">			</span><span class="COMM">//new_line=b[0].slice(-1)=='\r'?'\r\n':'\n';	//	移到前面:因為需要以new_line作split	test檔案型式:DOS or UNIX.最後一位元已被split掉</span><span class="WHIT">
 | 
						||
<span class='line'>238</span> </span><span class="WHIT">			</span><span class="COMM">//alert('end_char='+end_char+',j='+j+',d='+d+'\n'+b[0]+'\nNewLine:'+(new_line=='\n'?'\\n':new_line=='\r\n'?'\\r\\n':'\\r')+'\ncode_head:\n'+code_head);</span><span class="WHIT">
 | 
						||
<span class='line'>239</span> 
 | 
						||
<span class='line'>240</span> </span><span class="WHIT">			</span><span class="KEYW">do</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>241</span> </span><span class="WHIT">				</span><span class="COMM">// 不需要d>=b[j].length</span><span class="WHIT">
 | 
						||
<span class='line'>242</span> </span><span class="WHIT">				</span><span class="COMM">//if(d==b[j].length)continue;	</span><span class="WHIT">
 | 
						||
<span class='line'>243</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">j</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>244</span> </span><span class="WHIT">					</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>245</span> </span><span class="WHIT">				</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'//'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>246</span> </span><span class="WHIT">					</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>247</span> </span><span class="WHIT">				</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>248</span> </span><span class="WHIT">					</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>249</span> 
 | 
						||
<span class='line'>250</span> </span><span class="WHIT">				</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="PUNC">;</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>251</span> </span><span class="WHIT">					</span><span class="COMM">//alert('search '+b[j].slice(d));</span><span class="WHIT">
 | 
						||
<span class='line'>252</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/^[,\s]*([\'\"])/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>253</span> </span><span class="WHIT">							</span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">f</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">RegExp.lastIndex</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><=</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
 | 
						||
<span class='line'>254</span> </span><span class="WHIT">							</span><span class="COMM">// (c=c[1], f<b[j].length)</span><span class="WHIT">
 | 
						||
<span class='line'>255</span> </span><span class="WHIT">							</span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">f</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// .search(</span><span class="WHIT">
 | 
						||
<span class='line'>256</span> </span><span class="WHIT">						</span><span class="COMM">// alert(b[j].charAt(f)+'\n'+c+'\n^(.*[^\\\\])['+c+']');</span><span class="WHIT">
 | 
						||
<span class='line'>257</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">charAt</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>258</span> </span><span class="WHIT">							</span><span class="COMM">// '',""等</span><span class="WHIT">
 | 
						||
<span class='line'>259</span> </span><span class="WHIT">							</span><span class="NAME">alert</span><span class="PUNC">(</span><span class="STRN">'add_code: 包含['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']:\n'</span><span class="WHIT">
 | 
						||
<span class='line'>260</span> </span><span class="WHIT">									</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>261</span> </span><span class="WHIT">							</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>262</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>263</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="WHIT">
 | 
						||
<span class='line'>264</span> </span><span class="WHIT">								</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="STRN">'^(.+?[^\\\\])['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>265</span> </span><span class="WHIT">							</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">f</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">RegExp.lastIndex</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>266</span> </span><span class="WHIT">							</span><span class="NAME">req.push</span><span class="PUNC">(</span><span class="NAME">direct_input</span><span class="COMM">/* +b[j].charAt(f-1) 改進後不需要了 */</span><span class="WHIT">
 | 
						||
<span class='line'>267</span> </span><span class="WHIT">									</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>268</span> </span><span class="WHIT">							</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>269</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>270</span> </span><span class="WHIT">						</span><span class="NAME">alert</span><span class="PUNC">(</span><span class="STRN">'add_code: Can not find end quota:\n'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>271</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>272</span> </span><span class="WHIT">					</span><span class="COMM">//alert(d+','+b[j].length+'\nsearch to '+b[j].slice(d));</span><span class="WHIT">
 | 
						||
<span class='line'>273</span> 
 | 
						||
<span class='line'>274</span> </span><span class="WHIT">					</span><span class="COMM">//	出現奇怪現象請加"()"</span><span class="WHIT">
 | 
						||
<span class='line'>275</span> </span><span class="WHIT">					</span><span class="COMM">//if((c=b[j].slice(d).match(/([^,\s]+)([,\s]*)/))&& ( (d+=RegExp.lastIndex)==b[j].length || /[,\n]/.test(c[2])&&d<b[j].length ) ){	//	不需要\s\r</span><span class="WHIT">
 | 
						||
<span class='line'>276</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/([^,\s]+)[,\s]*/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RegExp.lastIndex</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><=</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">	</span><span class="COMM">//	不需要\s\r</span><span class="WHIT">
 | 
						||
<span class='line'>277</span> </span><span class="WHIT">						</span><span class="COMM">//if(!/[,\n]/.test(c[2])&&d<b[j].length)break;</span><span class="WHIT">
 | 
						||
<span class='line'>278</span> </span><span class="WHIT">						</span><span class="COMM">//alert(RegExp.index+','+d+','+b[j].length+','+end_char+'\n['+c[1]+']\n['+c[2]+']\n'+b[j].slice(d));</span><span class="WHIT">
 | 
						||
<span class='line'>279</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">end_char</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">indexOf</span><span class="PUNC">(</span><span class="NAME">end_char</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">req.push</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>280</span> </span><span class="WHIT">						</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">req.push</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">end_char</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>281</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>282</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>283</span> </span><span class="WHIT">				</span><span class="NAME">code_head</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>284</span> </span><span class="WHIT">				</span><span class="COMM">//alert('output start_string:\n'+start_string+'\ncode_head:\n'+code_head);</span><span class="WHIT">
 | 
						||
<span class='line'>285</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">end_char</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">b.length</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>286</span> </span><span class="WHIT">			</span><span class="COMM">//for(j=0,b=[];j<req.length;j++)b.push(req[j]);	//	不能用b=req:object是用參考的,這樣會改到req本身!</span><span class="WHIT">
 | 
						||
<span class='line'>287</span> </span><span class="WHIT">			</span><span class="COMM">//for(j=0;j<Vlist.length;j++)b.push(Vlist[j]);	//	加入附加的變數</span><span class="WHIT">
 | 
						||
<span class='line'>288</span> 
 | 
						||
<span class='line'>289</span> </span><span class="WHIT">			</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.generate_code</span><span class="PUNC">(</span><span class="NAME">req.concat</span><span class="PUNC">(</span><span class="NAME">Vlist</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">direct_input</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>290</span> </span><span class="WHIT">			</span><span class="NAME">codeText</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">code_head</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">arguments.callee.report</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'/*	add_code @ '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">gDate</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">	</span><span class="COMM">//	report</span><span class="WHIT">
 | 
						||
<span class='line'>291</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">req.length</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'	request variables ['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">req.length</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']:	'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">req</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>292</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Vlist.length</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'	addition lists ['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Vlist.length</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']:	'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Vlist</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>293</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">req.length</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">Vlist.length</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">req.length</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Vlist.length</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'	Total request ['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']:	'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>294</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'	really done ['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']:	'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>295</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">5</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'	cannot found ['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">5</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']:	'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">5</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>296</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">6</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'	all listed ['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">6</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']:	'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">6</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>297</span> </span><span class="WHIT">					</span><span class="COMM">//+(b[3].length?new_line+'	included function ['+b[3].length+']:	'+b[3]:'')</span><span class="WHIT">
 | 
						||
<span class='line'>298</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'	*/'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">_.reduce_code</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/([};])function(\s)/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'function$2'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/}var(\s)/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'}'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'var$1'</span><span class="PUNC">)</span><span class="COMM">/*.replace(/([;}])([a-z\._\d]+=)/ig,'$1'+new_line+'$2')*/</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>299</span> </span><span class="WHIT">			</span><span class="COMM">//alert(start+','+end+'\n'+a.length+','+end+','+end_string.length+','+(end+end_string.length)+'\n------------\n'+codeText);//+a.slice(end+end_string.length)</span><span class="WHIT">
 | 
						||
<span class='line'>300</span> </span><span class="WHIT">			</span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">start</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">start_string.length</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>301</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">codeText</span><span class="WHIT">
 | 
						||
<span class='line'>302</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">a.substr</span><span class="PUNC">(</span><span class="NAME">end</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">end_string.length</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>303</span> </span><span class="WHIT">			</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.substr</span><span class="PUNC">(</span><span class="NAME">end</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">end_string.length</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>304</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>305</span> 
 | 
						||
<span class='line'>306</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file_name.length</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">is_file</span><span class="PUNC">(</span><span class="NAME">file_name</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>307</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">A</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>308</span> 
 | 
						||
<span class='line'>309</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">oriC</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">)</span><span class="WHIT">	</span><span class="COMM">//	有變化才寫入</span><span class="WHIT">
 | 
						||
<span class='line'>310</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">simpleWrite</span><span class="PUNC">(</span><span class="NAME">file_name</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">tmpExt</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">encoding</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>311</span> </span><span class="WHIT">				</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>312</span> </span><span class="WHIT">					</span><span class="NAME">fso.DeleteFile</span><span class="PUNC">(</span><span class="NAME">file_name</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>313</span> </span><span class="WHIT">					</span><span class="NAME">fso.MoveFile</span><span class="PUNC">(</span><span class="NAME">file_name</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">tmpExt</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">file_name</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>314</span> </span><span class="WHIT">					</span><span class="NAME">OK</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>315</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>316</span> </span><span class="WHIT">					</span><span class="COMM">// popErr(e);</span><span class="WHIT">
 | 
						||
<span class='line'>317</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>318</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>319</span> </span><span class="WHIT">				</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>320</span> </span><span class="WHIT">					</span><span class="NAME">fso.DeleteFile</span><span class="PUNC">(</span><span class="NAME">file_name</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">tmpExt</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>321</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>322</span> </span><span class="WHIT">					</span><span class="COMM">// popErr(simpleFileErr);popErr(e);</span><span class="WHIT">
 | 
						||
<span class='line'>323</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>324</span> </span><span class="WHIT">		</span><span class="COMM">//else{alert('add_code error:\n'+e.message);continue;}</span><span class="WHIT">
 | 
						||
<span class='line'>325</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>326</span> </span><span class="WHIT">		</span><span class="COMM">//popErr(e);</span><span class="WHIT">
 | 
						||
<span class='line'>327</span> </span><span class="WHIT">		</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="NAME">e</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>328</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>329</span> 
 | 
						||
<span class='line'>330</span> </span><span class="WHIT">	</span><span class="COMM">//	A:成功的最後一個檔之內容</span><span class="WHIT">
 | 
						||
<span class='line'>331</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">file_name.length</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">OK</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">OK</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>332</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>333</span> 
 | 
						||
<span class='line'>334</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>335</span>  * 是否加入報告
 | 
						||
<span class='line'>336</span>  * @type	Boolean
 | 
						||
<span class='line'>337</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'>338</span> </span><span class="NAME">_.add_code.report</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>339</span> 
 | 
						||
<span class='line'>340</span> 
 | 
						||
<span class='line'>341</span> </span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'>342</span> </span><span class="PUNC">.</span><span class="WHIT">
 | 
						||
<span class='line'>343</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>344</span>  * add libary use
 | 
						||
<span class='line'>345</span>  * @param	{String} code	script code
 | 
						||
<span class='line'>346</span>  * @returns 
 | 
						||
<span class='line'>347</span>  * @memberOf	CeL.code.reorganize
 | 
						||
<span class='line'>348</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'>349</span> </span><span class="NAME">add_use</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">code</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>350</span> </span><span class="WHIT">	</span><span class="COMM">//	TODO: 去除 comments 中的 .use()</span><span class="WHIT">
 | 
						||
<span class='line'>351</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.add_use</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">code.match</span><span class="PUNC">(</span><span class="NAME">_s.pattern</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>352</span> 
 | 
						||
<span class='line'>353</span> </span><span class="WHIT">	</span><span class="NAME">library_namespace.err</span><span class="PUNC">(</span><span class="STRN">'TODO'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>354</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>355</span> </span><span class="NAME">_.add_use.pattern</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="NAME">library_namespace.Class</span><span class="WHIT">
 | 
						||
<span class='line'>356</span> </span><span class="WHIT">		</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'\\s*.\\s*use\\((.+)\\)'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>357</span> 
 | 
						||
<span class='line'>358</span> </span><span class="COMM">/*
 | 
						||
<span class='line'>359</span> try.wsf
 | 
						||
<span class='line'>360</span> <package><job id="try"><script type="text/javascript" language="JScript" src="function.js"></script><script type="text/javascript" language="JScript" src="try.js"></script></job></package>
 | 
						||
<span class='line'>361</span> try.js
 | 
						||
<span class='line'>362</span> destory_script('WshShell=WScript.CreateObject("WScript.Shell");'+NewLine+NewLine+alert+NewLine+NewLine+'alert("資料讀取錯誤!\\n請檢查設定是否有錯!");');
 | 
						||
<span class='line'>363</span> */</span><span class="WHIT">
 | 
						||
<span class='line'>364</span> </span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'>365</span> </span><span class="PUNC">.</span><span class="WHIT">
 | 
						||
<span class='line'>366</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>367</span>  * script 終結者…
 | 
						||
<span class='line'>368</span>  * @param	{String} code	script code
 | 
						||
<span class='line'>369</span>  * @param	addFN
 | 
						||
<span class='line'>370</span>  * @returns	error no. 
 | 
						||
<span class='line'>371</span>  * @memberOf	CeL.code.reorganize
 | 
						||
<span class='line'>372</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'>373</span> </span><span class="NAME">destory_script</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">code</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">addFN</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>374</span> </span><span class="WHIT">	</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>375</span> </span><span class="WHIT">		</span><span class="COMM">//	input indepent code, additional files</span><span class="WHIT">
 | 
						||
<span class='line'>376</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">SN</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">getScriptName</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">F</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listJs</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">self</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">SN</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.js'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>377</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">code</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>378</span> </span><span class="WHIT">			</span><span class="NAME">code</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//SN='try';</span><span class="WHIT">
 | 
						||
<span class='line'>379</span> </span><span class="WHIT">		</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">simpleRead</span><span class="PUNC">(</span><span class="NAME">SN</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.wsf'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>380</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">a</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>381</span> </span><span class="WHIT">		</span><span class="COMM">//	一網打盡</span><span class="WHIT">
 | 
						||
<span class='line'>382</span> </span><span class="WHIT">		</span><span class="NAME">listJs</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.match</span><span class="PUNC">(</span><span class="REGX">/[^\\\/:*?"<>|'\r\n]+\.(js|vbs|hta|s?html?|txt|wsf|pac)/gi</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>383</span> </span><span class="WHIT">		</span><span class="COMM">//,listWsf=(SN+'.wsf\n'+a).match(/[^\\\/:*?"<>|'\r\n]+\.wsf/gi);</span><span class="WHIT">
 | 
						||
<span class='line'>384</span> 
 | 
						||
<span class='line'>385</span> </span><span class="WHIT">		</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">F</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">listJs.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>386</span> </span><span class="WHIT">			</span><span class="NAME">F</span><span class="PUNC">[</span><span class="NAME">listJs</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>387</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">addFN</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>388</span> </span><span class="WHIT">			</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">addFN</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>389</span> </span><span class="WHIT">				</span><span class="NAME">F</span><span class="PUNC">[</span><span class="NAME">addFN</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>390</span> </span><span class="WHIT">		</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">addFN</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>391</span> </span><span class="WHIT">			</span><span class="NAME">F</span><span class="PUNC">[</span><span class="NAME">addFN</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>392</span> 
 | 
						||
<span class='line'>393</span> </span><span class="WHIT">		</span><span class="NAME">listJs</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>394</span> </span><span class="WHIT">		</span><span class="COMM">//	避免重複</span><span class="WHIT">
 | 
						||
<span class='line'>395</span> </span><span class="WHIT">		</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">F</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>396</span> </span><span class="WHIT">			</span><span class="NAME">listJs</span><span class="PUNC">[</span><span class="NAME">listJs.length</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="WHIT">
 | 
						||
<span class='line'>397</span> </span><span class="WHIT">		</span><span class="COMM">//alert(listJs.join('\n'));</span><span class="WHIT">
 | 
						||
<span class='line'>398</span> 
 | 
						||
<span class='line'>399</span> </span><span class="WHIT">		</span><span class="COMM">//done all .js @ .wsf & files @ additional list without self</span><span class="WHIT">
 | 
						||
<span class='line'>400</span> </span><span class="WHIT">		</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">listJs.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>401</span> </span><span class="WHIT">			</span><span class="COMM">//	除了self外殺無赦</span><span class="WHIT">
 | 
						||
<span class='line'>402</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">listJs</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">self</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>403</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">listJs</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/\.js$/i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">listJs</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">SN</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.wsf'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">fso.DeleteFile</span><span class="PUNC">(</span><span class="NAME">listJs</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">//	非.js就讓他死</span><span class="WHIT">
 | 
						||
<span class='line'>404</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">changeAttributes</span><span class="PUNC">(</span><span class="NAME">F</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">fso.GetFile</span><span class="PUNC">(</span><span class="NAME">listJs</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'-ReadOnly'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	取消唯讀</span><span class="WHIT">
 | 
						||
<span class='line'>405</span> </span><span class="WHIT">				</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">add_null_code</span><span class="PUNC">(</span><span class="NAME">F.size</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//a=listJs[i].match(/\.js$/i)?add_null_code(F.size):'';	先確認檔案存在,再幹掉他</span><span class="WHIT">
 | 
						||
<span class='line'>406</span> </span><span class="WHIT">				</span><span class="COMM">//alert('done '+listJs[i]+'('+F.size+')\n'+(a.length<500?a:a.slice(0,500)+'..'));</span><span class="WHIT">
 | 
						||
<span class='line'>407</span> </span><span class="WHIT">				</span><span class="NAME">simpleWrite</span><span class="PUNC">(</span><span class="NAME">listJs</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>408</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>409</span> </span><span class="WHIT">				</span><span class="COMM">//popErr(e);</span><span class="WHIT">
 | 
						||
<span class='line'>410</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>411</span> 
 | 
						||
<span class='line'>412</span> </span><span class="WHIT">		</span><span class="COMM">//done .wsf</span><span class="WHIT">
 | 
						||
<span class='line'>413</span> </span><span class="WHIT">		</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>414</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">changeAttributes</span><span class="PUNC">(</span><span class="NAME">F</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">fso.GetFile</span><span class="PUNC">(</span><span class="NAME">SN</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.wsf'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'-ReadOnly'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>415</span> </span><span class="WHIT">				</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>416</span> </span><span class="WHIT">			</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'<package><job id="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">SN</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'"><script type="text/javascript" src="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">SN</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.js"><\/script><\/job><\/package>'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>417</span> </span><span class="WHIT">			</span><span class="COMM">//alert('done '+SN+'.wsf'+'('+F.size+')\n'+a);</span><span class="WHIT">
 | 
						||
<span class='line'>418</span> </span><span class="WHIT">			</span><span class="COMM">//a='<package><job id="'+SN+'"><script type="text/javascript" src="function.js"><\/script><script type="text/javascript" src="'+SN+'.js"><\/script><\/job><\/package>';</span><span class="WHIT">
 | 
						||
<span class='line'>419</span> </span><span class="WHIT">			</span><span class="NAME">simpleWrite</span><span class="PUNC">(</span><span class="NAME">SN</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.wsf'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>420</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>421</span> </span><span class="WHIT">			</span><span class="COMM">//popErr(e);</span><span class="WHIT">
 | 
						||
<span class='line'>422</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>423</span> 
 | 
						||
<span class='line'>424</span> </span><span class="WHIT">		</span><span class="COMM">//	done self</span><span class="WHIT">
 | 
						||
<span class='line'>425</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">listJs.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>426</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">changeAttributes</span><span class="PUNC">(</span><span class="NAME">F</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">fso.GetFile</span><span class="PUNC">(</span><span class="NAME">self</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'-ReadOnly'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>427</span> </span><span class="WHIT">				</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>428</span> </span><span class="WHIT">			</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">F.size</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">code.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>429</span> </span><span class="WHIT">			</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">add_null_code</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">code</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">add_null_code</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>430</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">F.Attributes</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>431</span> </span><span class="WHIT">				</span><span class="COMM">//	取消唯讀</span><span class="WHIT">
 | 
						||
<span class='line'>432</span> </span><span class="WHIT">				</span><span class="NAME">F.Attributes</span><span class="PUNC">--</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>433</span> </span><span class="WHIT">			</span><span class="COMM">//alert('done '+self+'('+F.size+')\n'+(a.length<500?a:a.slice(0,500)+'..'));</span><span class="WHIT">
 | 
						||
<span class='line'>434</span> </span><span class="WHIT">			</span><span class="COMM">//a='setTool(),destory_script();';</span><span class="WHIT">
 | 
						||
<span class='line'>435</span> </span><span class="WHIT">			</span><span class="NAME">simpleWrite</span><span class="PUNC">(</span><span class="NAME">self</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>436</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>437</span> </span><span class="WHIT">			</span><span class="COMM">//popErr(e);</span><span class="WHIT">
 | 
						||
<span class='line'>438</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>439</span> 
 | 
						||
<span class='line'>440</span> </span><span class="WHIT">		</span><span class="COMM">//run self & WScript.Quit()</span><span class="WHIT">
 | 
						||
<span class='line'>441</span> </span><span class="WHIT">		</span><span class="COMM">//return WshShell.Run('"'+getScriptFullName()+'"');</span><span class="WHIT">
 | 
						||
<span class='line'>442</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>443</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>444</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>445</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>446</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>447</span> 
 | 
						||
<span class='line'>448</span> </span><span class="COMM">/*	for version<5.1:因為不能用.wsf,所以需要合併成一個檔。
 | 
						||
<span class='line'>449</span> 請將以下函數copy至.js主檔後做適當之變更
 | 
						||
<span class='line'>450</span> getScriptName(),merge_script(FN),preCheck(ver)
 | 
						||
<span class='line'>451</span> */</span><span class="WHIT">
 | 
						||
<span class='line'>452</span> </span><span class="COMM">//	將script所需之檔案合併</span><span class="WHIT">
 | 
						||
<span class='line'>453</span> </span><span class="COMM">//	因為常由preCheck()呼叫,所以所有功能亦需內含。</span><span class="WHIT">
 | 
						||
<span class='line'>454</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">merge_script</span><span class="PUNC">(</span><span class="NAME">FN</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>455</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">SN</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">getScriptName</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">fso</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ForReading</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ForWriting</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ForAppending</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>456</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">NewLine</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>457</span> </span><span class="WHIT">		</span><span class="NAME">NewLine</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'\r\n'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>458</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">fso</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>459</span> </span><span class="WHIT">		</span><span class="NAME">fso</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">WScript.CreateObject</span><span class="PUNC">(</span><span class="STRN">"Scripting.FileSystemObject"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>460</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">ForReading</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>461</span> </span><span class="WHIT">		</span><span class="NAME">ForReading</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ForWriting</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ForAppending</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">8</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>462</span> </span><span class="WHIT">	</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>463</span> 
 | 
						||
<span class='line'>464</span> </span><span class="WHIT">		</span><span class="COMM">//	from .wsf</span><span class="WHIT">
 | 
						||
<span class='line'>465</span> </span><span class="WHIT">		</span><span class="COMM">/*var F=fso.OpenTextFile(SN+'.wsf',ForReading)
 | 
						||
<span class='line'>466</span> 		//,R=new RegExp('src\s*=\s*["\']?(.+\.js)["\']?\s*','gi')
 | 
						||
<span class='line'>467</span> 		,a=F.ReadAll();F.Close();*/</span><span class="WHIT">
 | 
						||
<span class='line'>468</span> </span><span class="WHIT">		</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">simpleRead</span><span class="PUNC">(</span><span class="NAME">SN</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.wsf'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>469</span> </span><span class="WHIT">		</span><span class="NAME">S</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">fso.OpenTextFile</span><span class="PUNC">(</span><span class="NAME">FN</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ForWriting</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="COMM">/* create */</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>470</span> 
 | 
						||
<span class='line'>471</span> </span><span class="WHIT">		</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>472</span> </span><span class="WHIT">			</span><span class="COMM">//t=a.match(/<\s*resource\s+id=(['"].*['"])\s*>((.|\r\n)*?)<\/\s*resource\s*>/gi);</span><span class="WHIT">
 | 
						||
<span class='line'>473</span> </span><span class="WHIT">			</span><span class="COMM">//	5.1版以下果然還是不能成功實行,因為改變regexp不能達到目的:沒能找到t。所以在下面第一次test失敗後即放棄;改用.ini設定。</span><span class="WHIT">
 | 
						||
<span class='line'>474</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="STRN">"<\\s*resource\\s+id=(['\"].*['\"])\\s*>((.|\\r\\n)*?)<\\/\\s*resource\\s*>"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"ig"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>475</span> </span><span class="WHIT">			</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.match</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>476</span> </span><span class="WHIT">			</span><span class="NAME">S.WriteLine</span><span class="PUNC">(</span><span class="STRN">'//	merge_script: from '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">SN</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.wsf'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>477</span> </span><span class="WHIT">			</span><span class="NAME">S.WriteLine</span><span class="PUNC">(</span><span class="STRN">"function getResource(id){"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>478</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">t.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">S.WriteLine</span><span class="PUNC">(</span><span class="STRN">" return ''"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>479</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">t.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>480</span> </span><span class="WHIT">				</span><span class="COMM">//alert(i+':'+t[i]);</span><span class="WHIT">
 | 
						||
<span class='line'>481</span> </span><span class="WHIT">				</span><span class="COMM">//n=t[i].match(/<\s*resource\s+id=(['"].*['"])\s*>((.|\r\n)*?)<\/\s*resource\s*>/i);</span><span class="WHIT">
 | 
						||
<span class='line'>482</span> </span><span class="WHIT">				</span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="STRN">"<\\s*resource\\s+id=(['\"].*['\"])\\s*>((.|\\r\\n)*?)<\\/\\s*resource\\s*>"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"i"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>483</span> </span><span class="WHIT">				</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>484</span> </span><span class="WHIT">				</span><span class="NAME">S.WriteLine</span><span class="PUNC">(</span><span class="STRN">" "</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">":"</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"return "</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"id=="</span><span class="WHIT">
 | 
						||
<span class='line'>485</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"?'"</span><span class="WHIT">
 | 
						||
<span class='line'>486</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\r?\n/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'\\n'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"'"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>487</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>488</span> </span><span class="WHIT">			</span><span class="NAME">S.WriteLine</span><span class="PUNC">(</span><span class="STRN">" :'';"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"}"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>489</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>490</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>491</span> 
 | 
						||
<span class='line'>492</span> </span><span class="WHIT">		</span><span class="COMM">//	from .js</span><span class="WHIT">
 | 
						||
<span class='line'>493</span> </span><span class="WHIT">		</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.match</span><span class="PUNC">(</span><span class="REGX">/src\s*=\s*["']?(.+\.js)["']?\s*/gi</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>494</span> </span><span class="WHIT">		</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">t.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>495</span> </span><span class="WHIT">			</span><span class="COMM">//alert(i+':'+t[i].match(/src\s*=\s*["']?(.+\.js)["']?\s*/i)[1]);</span><span class="WHIT">
 | 
						||
<span class='line'>496</span> </span><span class="WHIT">			</span><span class="COMM">//try{F=fso.OpenTextFile(n=t[i].match(/src\s*=\s*["']?(.+\.js)["']?\s*/i)[1],ForReading);}</span><span class="WHIT">
 | 
						||
<span class='line'>497</span> </span><span class="WHIT">			</span><span class="COMM">//catch(e){continue;}</span><span class="WHIT">
 | 
						||
<span class='line'>498</span> </span><span class="WHIT">			</span><span class="COMM">//S.WriteLine('//	merge_script: from script	'+n);S.WriteBlankLines(1);S.WriteLine(F.ReadAll());</span><span class="WHIT">
 | 
						||
<span class='line'>499</span> </span><span class="WHIT">			</span><span class="COMM">//S.WriteLine('//	merge_script: from script	'+n+NewLine+NewLine+F.ReadAll());</span><span class="WHIT">
 | 
						||
<span class='line'>500</span> </span><span class="WHIT">			</span><span class="COMM">//F.Close();</span><span class="WHIT">
 | 
						||
<span class='line'>501</span> </span><span class="WHIT">			</span><span class="NAME">S.WriteLine</span><span class="PUNC">(</span><span class="STRN">'//	merge_script: from script	'</span><span class="WHIT">
 | 
						||
<span class='line'>502</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT">
 | 
						||
<span class='line'>503</span> </span><span class="WHIT">					</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/src\s*=\s*["']?(.+\.js)["']?\s*/i</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>504</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">simpleRead</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>505</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>506</span> </span><span class="WHIT">		</span><span class="NAME">S.Close</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>507</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>508</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>509</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>510</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>511</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>512</span> 
 | 
						||
<span class='line'>513</span> 
 | 
						||
<span class='line'>514</span> 
 | 
						||
<span class='line'>515</span> 
 | 
						||
<span class='line'>516</span> 
 | 
						||
<span class='line'>517</span> </span><span class="COMM">//var fa=function(a,s){return '"'+a+k+"'";},fb=function kk(a,t){return a;},fc=new Function('return b+b;'),Locale2=fa,Locale3=fb,Locale4=fc,r=generate_code(['fa','fb','fc','Locale2','Locale3','Locale4','kk']);alert(r.join('\n★'));try{eval(r[0]);alert(fa);}catch(e){alert('error!');}</span><span class="WHIT">
 | 
						||
<span class='line'>518</span> </span><span class="COMM">/*	use for JSON (JavaScript Object Notation)
 | 
						||
<span class='line'>519</span> directly input:	[directInput]string
 | 
						||
<span class='line'>520</span> 輸出string1(可reduce_code),輸出string2(主要為object definition,不需reduce_code,以.replace(/\r\n/g,'')即可reduce),總共要求的變數(去掉重複),包含的函數(可能因參考而有添加),包含的變數(可能因參考而有添加),未包含的變數
 | 
						||
<span class='line'>521</span> 
 | 
						||
<span class='line'>522</span> 未來:對Array與Object能確實設定之	尚未對應:Object遞迴/special Object(WScript,Excel.Application,內建Object等)/special function(內建函數如Math.floor與其他如WScript.CreateObject等)
 | 
						||
<span class='line'>523</span> JScript中對應資料型態,應考慮到內建(intrinsic 或 built-in)物件(Boolean/Date/Function/Number/Array/Object(需注意遞迴:Object之值可為Object))/Time/Error/RegExp/Regular Expression/String/Math)/string/integer/Byte/number(float/\d[de]+-\d/Number.MAX_VALUE/Number.MIN_VALUE)/special number(NaN/正無限值:Number.POSITIVE_INFINITY/負無限值:Number.NEGATIVE_INFINITY/正零/負零)/date/Boolean/undefined(尚未設定值)/undcleared(尚未宣告)/Null/normal Array/normal Object/special Object(WScript,Automation物件如Excel.Application,內建Object等)/function(實體/參考/anonymous)/special function(內建函數如isNaN,Math之屬性&方法Math[.{property|method}]與其他如WScript.CreateObject等)/unknown(others)
 | 
						||
<span class='line'>524</span> 
 | 
						||
<span class='line'>525</span> **	需同步更改 json()
 | 
						||
<span class='line'>526</span> 
 | 
						||
<span class='line'>527</span> 
 | 
						||
<span class='line'>528</span> TODO:
 | 
						||
<span class='line'>529</span> Object.toSource()
 | 
						||
<span class='line'>530</span> Array.toSource()
 | 
						||
<span class='line'>531</span> json	http://www.json.org/json.js
 | 
						||
<span class='line'>532</span> UglifyJS	https://github.com/mishoo/UglifyJS
 | 
						||
<span class='line'>533</span> 
 | 
						||
<span class='line'>534</span> 
 | 
						||
<span class='line'>535</span> XML Object
 | 
						||
<span class='line'>536</span> 
 | 
						||
<span class='line'>537</span> bug:
 | 
						||
<span class='line'>538</span> 函數定義 .toString() 時無法使用。
 | 
						||
<span class='line'>539</span> 
 | 
						||
<span class='line'>540</span> 
 | 
						||
<span class='line'>541</span> 使用 \uXXXX 使.js跨語系
 | 
						||
<span class='line'>542</span> 含中文行
 | 
						||
<span class='line'>543</span> →
 | 
						||
<span class='line'>544</span> //turnBy	含中文行
 | 
						||
<span class='line'>545</span> \x..
 | 
						||
<span class='line'>546</span> 考慮註解&執行時語系
 | 
						||
<span class='line'>547</span> 
 | 
						||
<span class='line'>548</span> to top BEFORE ANY FUNCTIONS:
 | 
						||
<span class='line'>549</span> generate_code.dLK='dependencyList';	//	dependency List Key
 | 
						||
<span class='line'>550</span> */</span><span class="WHIT">
 | 
						||
<span class='line'>551</span> </span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'>552</span> </span><span class="PUNC">.</span><span class="WHIT">
 | 
						||
<span class='line'>553</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>554</span>  * 利用[*現有的環境*]及變數設定生成code,因此並不能完全重現所有設定,也無法判別函數間的相依關係。
 | 
						||
<span class='line'>555</span>  * @param {Array} Vlist	變數 list
 | 
						||
<span class='line'>556</span>  * @param {String} new_line	new line
 | 
						||
<span class='line'>557</span>  * @param {String} direct_input	直接輸入用辨識碼
 | 
						||
<span class='line'>558</span>  * @requires	set_obj_value,dQuote
 | 
						||
<span class='line'>559</span>  * @memberOf	CeL.code.reorganize
 | 
						||
<span class='line'>560</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'>561</span> </span><span class="NAME">generate_code</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Vlist</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">direct_input</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>562</span> </span><span class="WHIT">	</span><span class="COMM">//	vars:處理過的variables(不論是合法或非合法),c:陳述是否已完結</span><span class="WHIT">
 | 
						||
<span class='line'>563</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.generate_code</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">codeText</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">afterCode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vars</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vari</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">done</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">undone</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>564</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">new_line</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>565</span> </span><span class="WHIT">		</span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'\n'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>566</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">direct_input</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>567</span> </span><span class="WHIT">		</span><span class="NAME">direct_input</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_s.ddI</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>568</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">Vlist</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>569</span> </span><span class="WHIT">		</span><span class="NAME">Vlist</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Vlist.split</span><span class="PUNC">(</span><span class="NAME">_s.dsp</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>570</span> 
 | 
						||
<span class='line'>571</span> </span><span class="WHIT">	</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">Vlist.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">vName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Vlist</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">vars</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>572</span> </span><span class="WHIT">		</span><span class="COMM">//	c(continue)=1:var未截止,vName:要加添的變數內容</span><span class="WHIT">
 | 
						||
<span class='line'>573</span> </span><span class="WHIT">		</span><span class="NAME">vars</span><span class="PUNC">[</span><span class="NAME">vName</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">vari.length</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vari.push</span><span class="PUNC">(</span><span class="NAME">vName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	避免重複</span><span class="WHIT">
 | 
						||
<span class='line'>574</span> 
 | 
						||
<span class='line'>575</span> </span><span class="WHIT">		</span><span class="COMM">//	不加入的</span><span class="WHIT">
 | 
						||
<span class='line'>576</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vName.charAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'-'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>577</span> </span><span class="WHIT">			</span><span class="NAME">vars</span><span class="PUNC">[</span><span class="NAME">vName.slice</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>578</span> </span><span class="WHIT">			</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>579</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>580</span> 
 | 
						||
<span class='line'>581</span> </span><span class="WHIT">		</span><span class="COMM">//	直接輸出</span><span class="WHIT">
 | 
						||
<span class='line'>582</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vName.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">direct_input.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">direct_input</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>583</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>584</span> </span><span class="WHIT">				</span><span class="NAME">codeText</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>585</span> </span><span class="WHIT">			</span><span class="NAME">codeText</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">vName.substr</span><span class="PUNC">(</span><span class="NAME">direct_input.length</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>586</span> </span><span class="WHIT">			</span><span class="NAME">done.push</span><span class="PUNC">(</span><span class="STRN">'(directly input)'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>587</span> </span><span class="WHIT">			</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>588</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>589</span> </span><span class="WHIT">		</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>590</span> </span><span class="WHIT">			</span><span class="COMM">// void</span><span class="WHIT">
 | 
						||
<span class='line'>591</span> </span><span class="WHIT">			</span><span class="NAME">eval</span><span class="PUNC">(</span><span class="STRN">'vType=typeof(val='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">');'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>592</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>593</span> </span><span class="WHIT">			</span><span class="COMM">//	b:type,c:已起始[var ];catch b:語法錯誤等,m:未定義</span><span class="WHIT">
 | 
						||
<span class='line'>594</span> </span><span class="WHIT">			</span><span class="COMM">//	e.constructor</span><span class="WHIT">
 | 
						||
<span class='line'>595</span> </span><span class="WHIT">			</span><span class="NAME">undone.push</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="WHIT">
 | 
						||
<span class='line'>596</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'(error '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e.number</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NUMB">0xFFFF</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">':'</span><span class="WHIT">
 | 
						||
<span class='line'>597</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">e.description</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>598</span> </span><span class="WHIT">			</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>599</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>600</span> 
 | 
						||
<span class='line'>601</span> 
 | 
						||
<span class='line'>602</span> </span><span class="WHIT">		</span><span class="COMM">//	or use switch-case</span><span class="WHIT">
 | 
						||
<span class='line'>603</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>604</span> </span><span class="WHIT">			</span><span class="COMM">//	加入function object成員,.prototype可用with()。加入函數相依性(dependency)</span><span class="WHIT">
 | 
						||
<span class='line'>605</span> </span><span class="WHIT">			</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>606</span> </span><span class="WHIT">				</span><span class="NAME">eval</span><span class="PUNC">(</span><span class="STRN">"var j,k;for(j in "</span><span class="WHIT">
 | 
						||
<span class='line'>607</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="WHIT">
 | 
						||
<span class='line'>608</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">")if(j=='"</span><span class="WHIT">
 | 
						||
<span class='line'>609</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">_s.dLK</span><span class="WHIT">
 | 
						||
<span class='line'>610</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"'&&(k=typeof "</span><span class="WHIT">
 | 
						||
<span class='line'>611</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="WHIT">
 | 
						||
<span class='line'>612</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"."</span><span class="WHIT">
 | 
						||
<span class='line'>613</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">_s.dLK</span><span class="WHIT">
 | 
						||
<span class='line'>614</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">",k=='string'||"</span><span class="WHIT">
 | 
						||
<span class='line'>615</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="WHIT">
 | 
						||
<span class='line'>616</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"."</span><span class="WHIT">
 | 
						||
<span class='line'>617</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">_s.dLK</span><span class="WHIT">
 | 
						||
<span class='line'>618</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">" instanceof Array)){j="</span><span class="WHIT">
 | 
						||
<span class='line'>619</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="WHIT">
 | 
						||
<span class='line'>620</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"."</span><span class="WHIT">
 | 
						||
<span class='line'>621</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">_s.dLK</span><span class="WHIT">
 | 
						||
<span class='line'>622</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">";if(k=='string')j=j.split(',');for(k in j)if(j[k])Vlist.push(j[k]);}else Vlist.push('"</span><span class="WHIT">
 | 
						||
<span class='line'>623</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">".'+j);for(j in "</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="WHIT">
 | 
						||
<span class='line'>624</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">".prototype)Vlist.push('"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="WHIT">
 | 
						||
<span class='line'>625</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">".prototype.'+j);"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>626</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>627</span> </span><span class="WHIT">				</span><span class="NAME">undone.push</span><span class="PUNC">(</span><span class="STRN">'('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.[child]'</span><span class="WHIT">
 | 
						||
<span class='line'>628</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'(error '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e.number</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NUMB">0xFFFF</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">':'</span><span class="WHIT">
 | 
						||
<span class='line'>629</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">e.description</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>630</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>631</span> 
 | 
						||
<span class='line'>632</span> </span><span class="WHIT">			</span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/[\r\n]/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	function 才會產生 \r\n 問題,所以先處理掉</span><span class="WHIT">
 | 
						||
<span class='line'>633</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">val.match</span><span class="PUNC">(</span><span class="REGX">/^\s*function\s*\(/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">val.match</span><span class="PUNC">(</span><span class="REGX">/^\s*function\s+([\w_]*)([^(]*)\(/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">	</span><span class="COMM">//	這種判別法不好!</span><span class="WHIT">
 | 
						||
<span class='line'>634</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RegExp.$1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'anonymous'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>635</span> </span><span class="WHIT">					</span><span class="NAME">func.push</span><span class="PUNC">(</span><span class="NAME">vName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'no named'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>636</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'anonymous'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>637</span> </span><span class="WHIT">						</span><span class="COMM">//	忠於原味(笑)</span><span class="WHIT">
 | 
						||
<span class='line'>638</span> </span><span class="WHIT">						</span><span class="COMM">//	anonymous 是從new Function(文字列を使って)來的</span><span class="WHIT">
 | 
						||
<span class='line'>639</span> </span><span class="WHIT">						</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">val.match</span><span class="PUNC">(</span><span class="REGX">/\(([^)]*)\)\s*{/</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RegExp.lastIndex</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">q</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">val.match</span><span class="PUNC">(</span><span class="REGX">/[^}]*$/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">q</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RegExp.index</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>640</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">m</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">undone.push</span><span class="PUNC">(</span><span class="STRN">'(anonymous function error:'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>641</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/,/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"','"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"',"</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'new Function('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dQuote</span><span class="PUNC">(</span><span class="NAME">_.reduce_code</span><span class="PUNC">(</span><span class="NAME">val.slice</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">q</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>642</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>643</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>644</span> </span><span class="WHIT">					</span><span class="COMM">//	関数(function): http://www.interq.or.jp/student/exeal/dss/ejs/1/2.html</span><span class="WHIT">
 | 
						||
<span class='line'>645</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">codeText</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">func.push</span><span class="PUNC">(</span><span class="NAME">vName</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">codeText</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>646</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">val.indexOf</span><span class="PUNC">(</span><span class="STRN">'[native code]'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">undone.push</span><span class="PUNC">(</span><span class="STRN">'(native code function error:'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">//	內建(intrinsic 或 built-in)函數:這種判別法不好!</span><span class="WHIT">
 | 
						||
<span class='line'>647</span> </span><span class="WHIT">				</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">vars</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">done.push</span><span class="PUNC">(</span><span class="STRN">'('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func.push</span><span class="PUNC">(</span><span class="NAME">vName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	已經登錄過了,所以就這麼下去..</span><span class="WHIT">
 | 
						||
<span class='line'>648</span> </span><span class="WHIT">				</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>649</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>650</span> </span><span class="WHIT">						</span><span class="NAME">codeText</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>651</span> </span><span class="WHIT">					</span><span class="NAME">codeText</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>652</span> </span><span class="WHIT">					</span><span class="NAME">vars</span><span class="PUNC">[</span><span class="NAME">t</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">vari.length</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>653</span> </span><span class="WHIT">					</span><span class="NAME">done.push</span><span class="PUNC">(</span><span class="STRN">'('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>654</span> </span><span class="WHIT">					</span><span class="NAME">func.push</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>655</span> </span><span class="WHIT">					</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>656</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>657</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>658</span> </span><span class="WHIT">				</span><span class="COMM">// unknown error</span><span class="WHIT">
 | 
						||
<span class='line'>659</span> </span><span class="WHIT">				</span><span class="NAME">undone.push</span><span class="PUNC">(</span><span class="STRN">'(function error:'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>660</span> </span><span class="WHIT">				</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>661</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>662</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>663</span> </span><span class="WHIT">			</span><span class="COMM">//	http://msdn2.microsoft.com/zh-tw/library/y382995a(VS.80).aspx</span><span class="WHIT">
 | 
						||
<span class='line'>664</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'MAX_VALUE,MIN_VALUE,NEGATIVE_INFINITY,POSITIVE_INFINITY,NaN'</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>665</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">NaN</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Infinity</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NAME">Infinity</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>666</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">m.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Number</span><span class="PUNC">[</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'Number.'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>667</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>668</span> </span><span class="WHIT">				</span><span class="COMM">//	http://msdn2.microsoft.com/zh-tw/library/shydc6ax(VS.80).aspx</span><span class="WHIT">
 | 
						||
<span class='line'>669</span> </span><span class="WHIT">				</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'E,LN10,LN2,LOG10E,LOG2E,PI,SQRT1_2,SQRT2'</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">m.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Math</span><span class="PUNC">[</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'Math.'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>670</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'0x'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val.toString</span><span class="PUNC">(</span><span class="NUMB">16</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>671</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>672</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'boolean'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//String(val)//val.toString()	//	typeof null is 'object'</span><span class="WHIT">
 | 
						||
<span class='line'>673</span> </span><span class="WHIT">		</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">dQuote</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>674</span> </span><span class="WHIT">		</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">val.getTime</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'date'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'new Date('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">999</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">val.getTime</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	date被當作object</span><span class="WHIT">
 | 
						||
<span class='line'>675</span> </span><span class="WHIT">		</span><span class="COMM">//	http://msdn2.microsoft.com/en-us/library/dww52sbt.aspx</span><span class="WHIT">
 | 
						||
<span class='line'>676</span> </span><span class="WHIT">		</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="COMM">/*val.constructor==Error  "[object Error]" */</span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val.constructor</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">indexOf</span><span class="PUNC">(</span><span class="STRN">'Error'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>677</span> </span><span class="WHIT">			</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'new Error'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">val.number</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">val.description</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">val.number</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">val.description</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">val.number</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">','</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dQuote</span><span class="PUNC">(</span><span class="NAME">val.description</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>678</span> </span><span class="WHIT">		</span><span class="COMM">/*
 | 
						||
<span class='line'>679</span> 		else if(vName=='set_obj_value.F'){	//	明白宣示在這裡就插入依存函數:不如用 set_obj_value.F,'set_obj_value();'
 | 
						||
<span class='line'>680</span> 		if(!vars['set_obj_value']||!vars['dQuote'])Vlist=Vlist.slice(0,i).concat('set_obj_value','dQuote',Vlist.slice(i));
 | 
						||
<span class='line'>681</span> 		Vlist[i--]=directInput+'var set_obj_value.F;';continue;
 | 
						||
<span class='line'>682</span> 		}
 | 
						||
<span class='line'>683</span> 		*/</span><span class="WHIT">
 | 
						||
<span class='line'>684</span> </span><span class="WHIT">		</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">val.constructor</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">Object</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">val.constructor</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="COMM">// instanceof</span><span class="WHIT">
 | 
						||
<span class='line'>685</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">T</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">T_</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">T_2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cmC</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'\\u002c'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eqC</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'\\u003d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">NL_</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"+'"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">maxLen</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">300</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">NL_.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	type;loop用,Text,間距,integer?</span><span class="WHIT">
 | 
						||
<span class='line'>686</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">val.constructor</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">Object</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>687</span> </span><span class="WHIT">				</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>688</span> </span><span class="WHIT">				</span><span class="COMM">//	http://fillano.blog.ithome.com.tw/post/257/59403</span><span class="WHIT">
 | 
						||
<span class='line'>689</span> </span><span class="WHIT">				</span><span class="COMM">//	** 一些內建的物件,他的屬性可能會是[[DontEnum]],也就是不可列舉的,而自訂的物件在下一版的ECMA-262中,也可以這樣設定他的屬性。</span><span class="WHIT">
 | 
						||
<span class='line'>690</span> </span><span class="WHIT">				</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">k</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>691</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>692</span> </span><span class="WHIT">						</span><span class="NAME">Vlist.push</span><span class="PUNC">(</span><span class="NAME">vName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	簡單的Object遞迴</span><span class="WHIT">
 | 
						||
<span class='line'>693</span> </span><span class="WHIT">					</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>694</span> </span><span class="WHIT">						</span><span class="NAME">T_2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">k.replace</span><span class="PUNC">(</span><span class="REGX">/,/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cmC</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/=/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eqC</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/,/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cmC</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/=/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eqC</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">','</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>695</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">T_.length</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">T_2.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">maxLen</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">T</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">T_</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">NL_</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">T_</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">T_2</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">T_</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">T_2</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>696</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_i</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">_i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">_i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>697</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>698</span> </span><span class="WHIT">				</span><span class="NAME">T</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">T_</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>699</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="COMM">// if(val.constructor==Array)</span><span class="WHIT">
 | 
						||
<span class='line'>700</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">base</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">16</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d_</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">k_</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">kA</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>701</span> </span><span class="WHIT">				</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">k</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>702</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>703</span> </span><span class="WHIT">						</span><span class="NAME">Vlist.push</span><span class="PUNC">(</span><span class="NAME">vName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	簡單的Object遞迴</span><span class="WHIT">
 | 
						||
<span class='line'>704</span> </span><span class="WHIT">					</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">kA.push</span><span class="PUNC">(</span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	因為Array中仍有可能存在非數字index</span><span class="WHIT">
 | 
						||
<span class='line'>705</span> </span><span class="WHIT">				</span><span class="NAME">kA.sort</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'Array'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">','</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">base</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>706</span> </span><span class="WHIT">				</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">k_</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">k_</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">kA.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">k_</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>707</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">kA</span><span class="PUNC">[</span><span class="NAME">k_</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>708</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d_</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'*'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>709</span> </span><span class="WHIT">							</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>710</span> </span><span class="WHIT">								</span><span class="NAME">d_</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">','</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>711</span> </span><span class="WHIT">							</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>712</span> </span><span class="WHIT">								</span><span class="NAME">d_</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'*'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>713</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>714</span> </span><span class="WHIT">						</span><span class="NAME">T_2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT">
 | 
						||
<span class='line'>715</span> </span><span class="WHIT">								</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">d_</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'*'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="COMM">/* k.toString(base).length-1 */</span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">d_</span><span class="WHIT">
 | 
						||
<span class='line'>716</span> </span><span class="WHIT">										</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">k.replace</span><span class="PUNC">(</span><span class="REGX">/,/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cmC</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>717</span> </span><span class="WHIT">														</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/=/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eqC</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>718</span> </span><span class="WHIT">													</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">k.toString</span><span class="PUNC">(</span><span class="NAME">base</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>719</span> </span><span class="WHIT">								</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>720</span> </span><span class="WHIT">							</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/,/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cmC</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/=/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eqC</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>721</span> </span><span class="WHIT">							</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">','</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>722</span> </span><span class="WHIT">						</span><span class="NAME">d_</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>723</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">T_.length</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">T_2.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">maxLen</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>724</span> </span><span class="WHIT">							</span><span class="NAME">T</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">T_</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">NL_</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">T_</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">T_2</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>725</span> </span><span class="WHIT">						</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>726</span> </span><span class="WHIT">							</span><span class="NAME">T_</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">T_2</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>727</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>728</span> </span><span class="WHIT">					</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>729</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_i</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>730</span> </span><span class="WHIT">						</span><span class="NAME">_i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>731</span> </span><span class="WHIT">					</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="WHIT">
 | 
						||
<span class='line'>732</span> </span><span class="WHIT">					</span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>733</span> </span><span class="WHIT">						</span><span class="NAME">_i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>734</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>735</span> </span><span class="WHIT">				</span><span class="NAME">T</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">T_</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>736</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>737</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">T</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>738</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">vars</span><span class="PUNC">[</span><span class="STRN">'set_obj_value'</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">vars</span><span class="PUNC">[</span><span class="STRN">'dQuote'</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>739</span> </span><span class="WHIT">					</span><span class="NAME">Vlist.push</span><span class="PUNC">(</span><span class="STRN">'set_obj_value'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'dQuote'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	假如沒有set_obj_value則須將之與其所依存之函數(dQuote)一同加入</span><span class="WHIT">
 | 
						||
<span class='line'>740</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">vars</span><span class="PUNC">[</span><span class="STRN">'set_obj_value.F'</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>741</span> </span><span class="WHIT">						</span><span class="NAME">Vlist.push</span><span class="PUNC">(</span><span class="NAME">direct_input</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'var set_obj_value.F;'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>742</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>743</span> </span><span class="WHIT">				</span><span class="NAME">afterCode</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"set_obj_value('"</span><span class="WHIT">
 | 
						||
<span class='line'>744</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="WHIT">
 | 
						||
<span class='line'>745</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"','"</span><span class="WHIT">
 | 
						||
<span class='line'>746</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">T.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>747</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"'"</span><span class="WHIT">
 | 
						||
<span class='line'>748</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_i</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">_i</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">",1"</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">",.1"</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">",1"</span><span class="WHIT">
 | 
						||
<span class='line'>749</span> </span><span class="WHIT">							</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">");"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>750</span> </span><span class="WHIT">				</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>751</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>752</span> </span><span class="WHIT">				</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'Object'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'{}'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'[]'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//new Object(), new Array()</span><span class="WHIT">
 | 
						||
<span class='line'>753</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">val.constructor</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>754</span> </span><span class="WHIT">			</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>755</span> </span><span class="WHIT">		</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>756</span> </span><span class="WHIT">			</span><span class="COMM">//	有定義(var)但沒設定值,可計算undefined數目</span><span class="WHIT">
 | 
						||
<span class='line'>757</span> </span><span class="WHIT">			</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>758</span> </span><span class="WHIT">		</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'unknown'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>759</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/^\s*\[[Oo]bject\s*(\w+)\]\s*$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RegExp.$1</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	僅對Math有效?</span><span class="WHIT">
 | 
						||
<span class='line'>760</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'unknown type: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' (constructor: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val.constructor</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">alert</span><span class="PUNC">(</span><span class="NAME">vName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">': '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">', please contract me!\n'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	未知</span><span class="WHIT">
 | 
						||
<span class='line'>761</span> </span><span class="WHIT">		</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">alert</span><span class="PUNC">(</span><span class="STRN">'The type of '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' is "'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'"!'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	unknown</span><span class="WHIT">
 | 
						||
<span class='line'>762</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>763</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vName.indexOf</span><span class="PUNC">(</span><span class="STRN">'.'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>764</span> </span><span class="WHIT">				</span><span class="NAME">codeText</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">','</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'var '</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//alert(codeText.substr(codeText.length-200));</span><span class="WHIT">
 | 
						||
<span class='line'>765</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>766</span> </span><span class="WHIT">				</span><span class="NAME">codeText</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>767</span> </span><span class="WHIT">				</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>768</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>769</span> </span><span class="WHIT">		</span><span class="NAME">done.push</span><span class="PUNC">(</span><span class="STRN">'('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vType</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">vName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>770</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>771</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>772</span> </span><span class="WHIT">		</span><span class="NAME">codeText</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//,c=0;//alert(codeText.substr(codeText.length-200));//alert(afterCode);</span><span class="WHIT">
 | 
						||
<span class='line'>773</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">codeText</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">afterCode</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vari</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">done</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">undone</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Vlist</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>774</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>775</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>776</span>  * default direct input symbol
 | 
						||
<span class='line'>777</span>  * @type	String
 | 
						||
<span class='line'>778</span>  * @memberOf	CeL.code.reorganize
 | 
						||
<span class='line'>779</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'>780</span> </span><span class="NAME">_.generate_code.ddI</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'*'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>781</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>782</span>  * default separator
 | 
						||
<span class='line'>783</span>  * @type	String
 | 
						||
<span class='line'>784</span>  * @memberOf	CeL.code.reorganize
 | 
						||
<span class='line'>785</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'>786</span> </span><span class="NAME">_.generate_code.dsp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">','</span><span class="PUNC">;</span><span class="WHIT">	</span><span class="WHIT">
 | 
						||
<span class='line'>787</span> 
 | 
						||
<span class='line'>788</span> 
 | 
						||
<span class='line'>789</span> 
 | 
						||
<span class='line'>790</span> 
 | 
						||
<span class='line'>791</span> </span><span class="COMM">//	null code series</span><span class="WHIT">
 | 
						||
<span class='line'>792</span> </span><span class="COMM">//simpleWrite('try.js',add_null_code(50000));</span><span class="WHIT">
 | 
						||
<span class='line'>793</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">null_code_data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">null_code_data_length</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">add_null_codeD</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	處理null_code的變數暫存,null_code_data[變數名]=變數值,null_code_data_length=length,add_null_codeD:add_null_code data,因為每次都重新執行null_code()很費時間</span><span class="WHIT">
 | 
						||
<span class='line'>794</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">add_null_code</span><span class="PUNC">(</span><span class="NAME">len</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">	</span><span class="COMM">//	為了基底才能加入function而作</span><span class="WHIT">
 | 
						||
<span class='line'>795</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">add_null_codeD</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">add_null_codeD</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">qq</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>796</span> </span><span class="WHIT">	</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">s.length</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>797</span> </span><span class="WHIT">		</span><span class="COMM">/*  t=Math.random()<.5?'function':'';
 | 
						||
<span class='line'>798</span> 		s+=len-s.length>9?null_code((len/2>999?999:len/2)+'-'+len,t):null_code(len,t);*/</span><span class="WHIT">
 | 
						||
<span class='line'>799</span> </span><span class="WHIT">		</span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">s.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">9</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">2</span><span class="NAME">e3</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">999</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>800</span> </span><span class="WHIT">		</span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">add_null_codeD</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>801</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">99</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">s.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">99</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="NUMB">99</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">add_null_codeD</span><span class="PUNC">[</span><span class="NAME">t.length</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">s.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">add_null_codeD</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>802</span> </span><span class="WHIT">		</span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">s.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">50</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">add_null_codeD</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT">
 | 
						||
<span class='line'>803</span> </span><span class="WHIT">		</span><span class="COMM">//	:(t=null_code(l),add_null_codeD[t.length]=t);</span><span class="WHIT">
 | 
						||
<span class='line'>804</span> </span><span class="WHIT">                                    </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">add_null_codeD</span><span class="PUNC">[</span><span class="NAME">t.length</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>805</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>806</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>807</span> </span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>808</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">null_code_data_add</span><span class="PUNC">(</span><span class="NAME">vari</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">	</span><span class="COMM">//	variables,value</span><span class="WHIT">
 | 
						||
<span class='line'>809</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vari</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>810</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">null_code_data</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">null_code_data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">null_code_dataI</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">null_code_data_length</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>811</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">vari</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">null_code_data</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">null_code_dataI.push</span><span class="PUNC">(</span><span class="NAME">vari</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">null_code_data_length</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>812</span> </span><span class="WHIT">		</span><span class="NAME">null_code_data</span><span class="PUNC">[</span><span class="NAME">vari</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>813</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>814</span> </span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>815</span> </span><span class="COMM">//var t=null_code('230-513','function');alert(t.length+'\n'+t);</span><span class="WHIT">
 | 
						||
<span class='line'>816</span> </span><span class="COMM">//	</span><span class="WHIT">
 | 
						||
<span class='line'>817</span> </span><span class="COMM">//	其他方法(有閒情逸致時再加):/**/,//,var vari=num+-*/num,str+-str,if(typeof vari=='~'){},try{eval('~');}catch(e){},eval('try{}catch(e){}');if()WScript.Echo();</span><span class="WHIT">
 | 
						||
<span class='line'>818</span> </span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'>819</span> </span><span class="PUNC">.</span><span class="WHIT">
 | 
						||
<span class='line'>820</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>821</span>  * 產生無用的垃圾碼
 | 
						||
<span class='line'>822</span>  * @param length	\d || \d-\d
 | 
						||
<span class='line'>823</span>  * @returns	{String}	無用的垃圾碼
 | 
						||
<span class='line'>824</span>  * @see
 | 
						||
<span class='line'>825</span>  * @memberOf	CeL.code.reorganize
 | 
						||
<span class='line'>826</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'>827</span> </span><span class="NAME">null_code</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">length</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>828</span> </span><span class="WHIT">	</span><span class="COMM">//	variables;up,down:長度上下限</span><span class="WHIT">
 | 
						||
<span class='line'>829</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vari</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>830</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">null_code_data</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>831</span> </span><span class="WHIT">		</span><span class="NAME">null_code_data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">null_code_dataI</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>832</span> </span><span class="WHIT">		</span><span class="NAME">null_code_data_length</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>833</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>834</span> </span><span class="WHIT">		</span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">length</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>835</span> </span><span class="WHIT">	</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">length</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">length.indexOf</span><span class="PUNC">(</span><span class="STRN">'-'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>836</span> </span><span class="WHIT">		</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">length.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">length</span><span class="WHIT">
 | 
						||
<span class='line'>837</span> </span><span class="WHIT">				</span><span class="PUNC">.</span><span class="NAME">substr</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>838</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>839</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>840</span> </span><span class="WHIT">		</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>841</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>842</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>843</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>844</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>845</span> </span><span class="WHIT">		</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>846</span> 
 | 
						||
<span class='line'>847</span> </span><span class="WHIT">	</span><span class="COMM">//if(type=='boolean'){return Math.random()<.5?1:0;}</span><span class="WHIT">
 | 
						||
<span class='line'>848</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>849</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>850</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>851</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'n2'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>852</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">9</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">9</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>853</span> </span><span class="WHIT">			</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.pow</span><span class="PUNC">(</span><span class="NUMB">10</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.pow</span><span class="PUNC">(</span><span class="NUMB">10</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>854</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>855</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>856</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>857</span> </span><span class="WHIT">		</span><span class="COMM">// if(d<0&&(d=0,u<0))</span><span class="WHIT">
 | 
						||
<span class='line'>858</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>859</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>860</span> </span><span class="WHIT">		</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'-'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>861</span> </span><span class="WHIT">			</span><span class="NAME">t.push</span><span class="PUNC">(</span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="STRN">'32-128'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>862</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">fromCharCode</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>863</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>864</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'vari'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>865</span> </span><span class="WHIT">		</span><span class="COMM">//	變數variables</span><span class="WHIT">
 | 
						||
<span class='line'>866</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">--</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">--</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">32</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">32</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	最長變數:32</span><span class="WHIT">
 | 
						||
<span class='line'>867</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>868</span> </span><span class="WHIT">		</span><span class="KEYW">do</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>869</span> </span><span class="WHIT">			</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="STRN">'65-123'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'-'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>870</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">90</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">97</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">95</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">t.push</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>871</span> </span><span class="WHIT">			</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="STRN">'55-123'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">90</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">97</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">95</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">65</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">7</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">t.push</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">//	code:48-57,65-90,95,97-122;</span><span class="WHIT">
 | 
						||
<span class='line'>872</span> </span><span class="WHIT">			</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">fromCharCode</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">eval</span><span class="PUNC">(</span><span class="STRN">'a=typeof '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'!="undefined";'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">//	確保是新的變數</span><span class="WHIT">
 | 
						||
<span class='line'>873</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NUMB">9</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">d</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>874</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">++</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">99</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">null_code_data</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	不能確保是新變數的話,給個新的:繼續作。★此作法可能導致長時間的迴圈delay!因此限制最多99次。</span><span class="WHIT">
 | 
						||
<span class='line'>875</span> </span><span class="WHIT">		</span><span class="COMM">//if(c==99){alert('重複:['+a+']'+t);WScript.Quit();}</span><span class="WHIT">
 | 
						||
<span class='line'>876</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>877</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>878</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>879</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="STRN">'0-9'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">fN</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="STRN">'2-30'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'vari'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'function '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">fN</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'('</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'}'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">D</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	fN:函數名</span><span class="WHIT">
 | 
						||
<span class='line'>880</span> </span><span class="WHIT">		</span><span class="COMM">//	只加入函數名</span><span class="WHIT">
 | 
						||
<span class='line'>881</span> </span><span class="WHIT">		</span><span class="NAME">null_code_data_add</span><span class="PUNC">(</span><span class="NAME">fN</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>882</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>883</span> </span><span class="WHIT">			</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>884</span> </span><span class="WHIT">				</span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="STRN">'2-30'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'vari'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">','</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">D.push</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>885</span> </span><span class="WHIT">			</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>886</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>887</span> </span><span class="WHIT">		</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'){'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>888</span> </span><span class="WHIT">		</span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">NewLine.length</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>889</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>890</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="NAME">length</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>891</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">NewLine</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'-'</span><span class="WHIT">
 | 
						||
<span class='line'>892</span> </span><span class="WHIT">				</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\n/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'\n	'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>893</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>894</span> </span><span class="WHIT">	</span><span class="COMM">//	others:type=='code'</span><span class="WHIT">
 | 
						||
<span class='line'>895</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="NAME">length</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>896</span> </span><span class="WHIT">	</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t.length</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>897</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">va</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NUMB">5</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">va</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="STRN">'1-6'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>898</span> </span><span class="WHIT">				</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">dQuote</span><span class="PUNC">(</span><span class="NAME">va</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="STRN">'5-'</span><span class="WHIT">
 | 
						||
<span class='line'>899</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">t.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">50</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">50</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">t.length</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>900</span> </span><span class="WHIT">				</span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>901</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">t.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">20</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NUMB">9</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>902</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NUMB">7</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">null_code_data_length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">9</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>903</span> </span><span class="WHIT">				</span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">null_code_dataI</span><span class="PUNC">[</span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'-'</span><span class="WHIT">
 | 
						||
<span class='line'>904</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">null_code_data_length</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">va</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>905</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>906</span> </span><span class="WHIT">				</span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">null_code</span><span class="PUNC">(</span><span class="STRN">'1-9'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'vari'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'var '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT">
 | 
						||
<span class='line'>907</span> </span><span class="WHIT">				</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NUMB">3</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">va</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>908</span> </span><span class="WHIT">			</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NUMB">4</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>909</span> </span><span class="WHIT">			</span><span class="NAME">null_code_data_add</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">va</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>910</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>911</span> </span><span class="WHIT">			</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>912</span> </span><span class="WHIT">			</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'	'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">t.length</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">NewLine.length</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="WHIT">
 | 
						||
<span class='line'>913</span> </span><span class="WHIT">					</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>914</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>915</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t.length</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">a.length</span><span class="WHIT"> </span><span class="PUNC"><=</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>916</span> </span><span class="WHIT">			</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>917</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>918</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>919</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>920</span> </span><span class="COMM">//	↑null code series</span><span class="WHIT">
 | 
						||
<span class='line'>921</span> 
 | 
						||
<span class='line'>922</span> 
 | 
						||
<span class='line'>923</span> 
 | 
						||
<span class='line'>924</span> </span><span class="COMM">/*
 | 
						||
<span class='line'>925</span> bug:
 | 
						||
<span class='line'>926</span> 當每一行都去除\n也可時方能使用!否則會出現「需要;」的錯誤!
 | 
						||
<span class='line'>927</span> 可能會lose條件式編譯(@cc_on等)的資訊或判別錯誤!另外,尚不保證不會lose或更改程式碼!
 | 
						||
<span class='line'>928</span> 
 | 
						||
<span class='line'>929</span> http://www.dreamprojections.com/syntaxhighlighter/Default.aspx
 | 
						||
<span class='line'>930</span> 
 | 
						||
<span class='line'>931</span> TODO:
 | 
						||
<span class='line'>932</span> 將 local various 甚至 global 依頻率縮短,合併以字串組合代替。	selectable
 | 
						||
<span class='line'>933</span> safer cut '\r\n'
 | 
						||
<span class='line'>934</span> {_exp1_;_exp2_;}	→	_exp1_,_exp2_;
 | 
						||
<span class='line'>935</span> safer cut ';'	;}	→	}
 | 
						||
<span class='line'>936</span> compress: eval("~")
 | 
						||
<span class='line'>937</span> 
 | 
						||
<span class='line'>938</span> (function(~){~})(~);
 | 
						||
<span class='line'>939</span> 
 | 
						||
<span class='line'>940</span> var fascii2ascii = (function(){
 | 
						||
<span class='line'>941</span> var cclass
 | 
						||
<span class='line'>942</span> = '['+String.fromCharCode(0xff01)+'-'+String.fromCharCode(0xff5e)+']';
 | 
						||
<span class='line'>943</span> var re_fullwidth = new RegExp(cclass, 'g');
 | 
						||
<span class='line'>944</span> var substitution = function(m){
 | 
						||
<span class='line'>945</span> return String.fromCharCode(m.charCodeAt(0) - 0xfee0); // 0xff00 - 0x20
 | 
						||
<span class='line'>946</span> };
 | 
						||
<span class='line'>947</span> return function(s){ return s.replace(re_fullwidth, substitution) };
 | 
						||
<span class='line'>948</span> })();
 | 
						||
<span class='line'>949</span> 
 | 
						||
<span class='line'>950</span> 
 | 
						||
<span class='line'>951</span> 
 | 
						||
<span class='line'>952</span> 
 | 
						||
<span class='line'>953</span> /*@cc_on	OK
 | 
						||
<span class='line'>954</span> /*@ cc_on	error
 | 
						||
<span class='line'>955</span> /* @cc_on	無效
 | 
						||
<span class='line'>956</span> 
 | 
						||
<span class='line'>957</span> 
 | 
						||
<span class='line'>958</span> JSlint 可以協助您檢查出有問題的程式碼。
 | 
						||
<span class='line'>959</span> http://www.jslint.com/
 | 
						||
<span class='line'>960</span> 
 | 
						||
<span class='line'>961</span> Javascript compressor
 | 
						||
<span class='line'>962</span> http://dean.edwards.name/packer/
 | 
						||
<span class='line'>963</span> http://javascriptcompressor.com/
 | 
						||
<span class='line'>964</span> http://www.creativyst.com/Prod/3/
 | 
						||
<span class='line'>965</span> http://www.radok.com/javascript-compression.html
 | 
						||
<span class='line'>966</span> http://alex.dojotoolkit.org/shrinksafe/
 | 
						||
<span class='line'>967</span> http://www.saltstorm.net/depo/esc/introduction.wbm
 | 
						||
<span class='line'>968</span> */</span><span class="WHIT">
 | 
						||
<span class='line'>969</span> 
 | 
						||
<span class='line'>970</span> </span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'>971</span> </span><span class="PUNC">.</span><span class="WHIT">
 | 
						||
<span class='line'>972</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>973</span>  * 精簡程式碼:去掉註解與\s\n。
 | 
						||
<span class='line'>974</span>  * use for JSON (JavaScript Object Notation)
 | 
						||
<span class='line'>975</span>  * @param code	欲精簡之程式碼
 | 
						||
<span class='line'>976</span>  * @param mode	mode=1:''中unicode轉\uHHHH
 | 
						||
<span class='line'>977</span>  * @returns	{String}	精簡後之程式碼
 | 
						||
<span class='line'>978</span>  * @example
 | 
						||
<span class='line'>979</span>  * CeL.use('code.reorganize');
 | 
						||
<span class='line'>980</span>  * CeL.reduce_code('a + v  = ddd;');
 | 
						||
<span class='line'>981</span>  * @see
 | 
						||
<span class='line'>982</span>  * @requires	
 | 
						||
<span class='line'>983</span>  * @memberOf	CeL.code.reorganize
 | 
						||
<span class='line'>984</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'>985</span> </span><span class="NAME">reduce_code</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">code</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">mode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>986</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">code</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>987</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//sss=0,mmm=90;</span><span class="WHIT">
 | 
						||
<span class='line'>988</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.reduce_code</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">reduce_space</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_s.reduce_space</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">code</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Begin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">End</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>989</span> </span><span class="WHIT">	</span><span class="COMM">//reduce_codeM=[''];</span><span class="WHIT">
 | 
						||
<span class='line'>990</span> </span><span class="WHIT">	</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a.match</span><span class="PUNC">(</span><span class="REGX">/['"\/]/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>991</span> </span><span class="WHIT">		</span><span class="KEYW">with</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">RegExp</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>992</span> </span><span class="WHIT">			</span><span class="NAME">Begin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">index</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">End</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">lastIndex</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">lastMatch</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>993</span> </span><span class="WHIT">		</span><span class="COMM">//alert(a);</span><span class="WHIT">
 | 
						||
<span class='line'>994</span> </span><span class="WHIT">		</span><span class="COMM">//	RegExp.$'等</span><span class="WHIT">
 | 
						||
<span class='line'>995</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Begin</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">a.charAt</span><span class="PUNC">(</span><span class="NAME">Begin</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'$'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>996</span> </span><span class="WHIT">			</span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">reduce_space</span><span class="PUNC">(</span><span class="NAME">a.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Begin</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>997</span> </span><span class="WHIT">			</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.substr</span><span class="PUNC">(</span><span class="NAME">End</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>998</span> </span><span class="WHIT">			</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>999</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1000</span> 
 | 
						||
<span class='line'>1001</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.charAt</span><span class="PUNC">(</span><span class="NAME">RegExp.lastIndex</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'*'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">	</span><span class="COMM">//	comment</span><span class="WHIT">
 | 
						||
<span class='line'>1002</span> </span><span class="WHIT">			</span><span class="COMM">//if(++sss>mmm-2&&alert('sss='+sss+NewLine+a),sss>mmm){alert('comment');break;}</span><span class="WHIT">
 | 
						||
<span class='line'>1003</span> </span><span class="WHIT">			</span><span class="COMM">//A+=reduce_space(a.slice(0,Begin)),b=m=='*'?'*/':'\n',m=a.indexOf(b,End+1);//A+=a.slice(0,RegExp.index),b=m=='*'?'*/':'\n',m=a.substr(RegExp.lastIndex).indexOf(b);//</span><span class="WHIT">
 | 
						||
<span class='line'>1004</span> </span><span class="WHIT">			</span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">reduce_space</span><span class="PUNC">(</span><span class="NAME">a.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Begin</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1005</span> </span><span class="WHIT">			</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'*'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'*/'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'\n'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1006</span> </span><span class="WHIT">			</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">End</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1007</span> </span><span class="WHIT">			</span><span class="KEYW">do</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1008</span> </span><span class="WHIT">				</span><span class="COMM">//	預防「\*/」…其實其他地方(如["'])也需要預防,但沒那精力了。</span><span class="WHIT">
 | 
						||
<span class='line'>1009</span> </span><span class="WHIT">				</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.indexOf</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1010</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a.charAt</span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'\\'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1011</span> </span><span class="WHIT">					</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1012</span> </span><span class="WHIT">				</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>1013</span> </span><span class="WHIT">					</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1014</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1015</span> </span><span class="WHIT">			</span><span class="COMM">//reduce_codeM.push('find comment:	Begin='+Begin+',End='+End+',m='+m+',b='+b.replace(/\n/g,'\\n')+NewLine+(m-End>200||m==-1?a.substr(Begin,200)+'..':a.slice(Begin,m))+NewLine+NewLine+'continue:'+NewLine+a.substr(m+b.length,200)+'..');</span><span class="WHIT">
 | 
						||
<span class='line'>1016</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1017</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'\n'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">/*return A;*/</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1018</span> </span><span class="WHIT">				</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'[/*] without [*/]!\n'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">a.substr</span><span class="PUNC">(</span><span class="NAME">Begin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">200</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1019</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
 | 
						||
<span class='line'>1020</span> </span><span class="WHIT">					</span><span class="COMM">//	7: 最起碼應該有這麼多 char 的 comment 才列入查核</span><span class="WHIT">
 | 
						||
<span class='line'>1021</span> </span><span class="WHIT">					</span><span class="NUMB">7</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">End</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
 | 
						||
<span class='line'>1022</span> </span><span class="WHIT">					</span><span class="COMM">//a.substring(End+1,m-5).indexOf('@cc_on')==0	不一定只有 cc_on</span><span class="WHIT">
 | 
						||
<span class='line'>1023</span> </span><span class="WHIT">					</span><span class="REGX">/^@[cei][a-z_]+/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">a.substring</span><span class="PUNC">(</span><span class="NAME">End</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">5</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1024</span> </span><span class="WHIT">				</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1025</span> </span><span class="WHIT">				</span><span class="COMM">//alert('There is conditional compilation detected,\n you may need pay attention to:\n'+a.substring(End+1,m-5)),</span><span class="WHIT">
 | 
						||
<span class='line'>1026</span> </span><span class="WHIT">				</span><span class="COMM">//	對條件式編譯全選,預防資訊lose。僅有'/*@cc_on'才列入,\/*\s+@\s+cc_on不可!</span><span class="WHIT">
 | 
						||
<span class='line'>1027</span> </span><span class="WHIT">				</span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.slice</span><span class="PUNC">(</span><span class="NAME">End</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b.length</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\s*(\/\/[^\r\n]*)?(\r?\n)\s*/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$2'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.slice</span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b.length</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1028</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.substr</span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b.length</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">A.match</span><span class="PUNC">(</span><span class="REGX">/\w$/</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">a.match</span><span class="PUNC">(</span><span class="REGX">/^\s*\w/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1029</span> </span><span class="WHIT">				</span><span class="COMM">//	預防return /*~*/a被轉為returna</span><span class="WHIT">
 | 
						||
<span class='line'>1030</span> </span><span class="WHIT">				</span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1031</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1032</span> </span><span class="WHIT">			</span><span class="COMM">//	RegExp</span><span class="WHIT">
 | 
						||
<span class='line'>1033</span> </span><span class="WHIT">			</span><span class="COMM">//reduce_codeM.push('find RegExp:	Begin='+Begin+NewLine+a.substr(Begin,200)+NewLine+'-'.x(20)+NewLine+A.substr(A.length-200)+'..');</span><span class="WHIT">
 | 
						||
<span class='line'>1034</span> </span><span class="WHIT">			</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Begin</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//c=Begin,q=End</span><span class="WHIT">
 | 
						||
<span class='line'>1035</span> 
 | 
						||
<span class='line'>1036</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">b.match</span><span class="PUNC">(</span><span class="REGX">/(^|[(;+=!{}&|:\\\?,])\s*$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1037</span> </span><span class="WHIT">				</span><span class="COMM">//	RegExp:以起頭的'/'前面的字元作判別,前面是這些則為RegExp</span><span class="WHIT">
 | 
						||
<span class='line'>1038</span> </span><span class="WHIT">				</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1039</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">b.match</span><span class="PUNC">(</span><span class="REGX">/[\w)\]]\s*$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1040</span> </span><span class="WHIT">				</span><span class="COMM">//	前面是這些則為op</span><span class="WHIT">
 | 
						||
<span class='line'>1041</span> </span><span class="WHIT">				</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1042</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>1043</span> </span><span class="WHIT">				</span><span class="COMM">//	需再加強前兩項判別之處</span><span class="WHIT">
 | 
						||
<span class='line'>1044</span> </span><span class="WHIT">				</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1045</span> </span><span class="WHIT">						</span><span class="STRN">'Unknown [/]! Please check it and add rules!\n'</span><span class="WHIT">
 | 
						||
<span class='line'>1046</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'\n-------------\n'</span><span class="WHIT">
 | 
						||
<span class='line'>1047</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">a.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">End</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">80</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1048</span> </span><span class="WHIT">						</span><span class="COMM">//+'\n-------------\n'+A</span><span class="WHIT">
 | 
						||
<span class='line'>1049</span> </span><span class="WHIT">				</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1050</span> 
 | 
						||
<span class='line'>1051</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">m</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1052</span> </span><span class="WHIT">				</span><span class="COMM">//if(!m)A+=a.slice(0,q),a=a.substr(q);//	應該是op之類//</span><span class="WHIT">
 | 
						||
<span class='line'>1053</span> </span><span class="WHIT">				</span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">reduce_space</span><span class="PUNC">(</span><span class="NAME">a.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">End</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1054</span> </span><span class="WHIT">				</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.substr</span><span class="PUNC">(</span><span class="NAME">End</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1055</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1056</span> </span><span class="WHIT">				</span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">reduce_space</span><span class="PUNC">(</span><span class="NAME">a.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Begin</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.substr</span><span class="PUNC">(</span><span class="NAME">Begin</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//else{A+=a.slice(0,c),a=a.substr(c),c=0;//</span><span class="WHIT">
 | 
						||
<span class='line'>1057</span> </span><span class="WHIT">				</span><span class="COMM">//if(++sss>mmm-2&&alert('sss='+sss+'\n'+a),sss>mmm){alert('reg');break;}</span><span class="WHIT">
 | 
						||
<span class='line'>1058</span> </span><span class="WHIT">				</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.substr</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/([^\\]|[\\]{2,})([[\/\n])/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">	</span><span class="COMM">//	去掉[]</span><span class="WHIT">
 | 
						||
<span class='line'>1059</span> </span><span class="WHIT">					</span><span class="COMM">//reduce_codeM.push('find RegExp [ or / or \\n :'+NewLine+a.substr(c+RegExp.index+1,20));</span><span class="WHIT">
 | 
						||
<span class='line'>1060</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RegExp.lastIndex</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">//	奇數個[\]後</span><span class="WHIT">
 | 
						||
<span class='line'>1061</span> </span><span class="WHIT">					</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1062</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'['</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1063</span> </span><span class="WHIT">						</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.substr</span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RegExp.lastIndex</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/([^\\]|[\\]{2,})\]/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">	</span><span class="COMM">//	不用c+=RegExp.index+1是因[]中一定得有字元</span><span class="WHIT">
 | 
						||
<span class='line'>1064</span> </span><span class="WHIT">							</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RegExp.lastIndex</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">//	奇數個[\]後</span><span class="WHIT">
 | 
						||
<span class='line'>1065</span> </span><span class="WHIT">							</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RegExp.lastIndex</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//	-1:因為偵測'['時需要前一個字元</span><span class="WHIT">
 | 
						||
<span class='line'>1066</span> </span><span class="WHIT">							</span><span class="COMM">//if(++sss>mmm-2&&alert('sss='+sss+'\nc='+c+'\n'+a.substr(c)),sss>mmm){alert('reg 2');break;}</span><span class="WHIT">
 | 
						||
<span class='line'>1067</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1068</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'RegExp error!\nbegin with:\n'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">a.substr</span><span class="PUNC">(</span><span class="NAME">Begin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">200</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1069</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1070</span> </span><span class="WHIT">				</span><span class="COMM">//reduce_codeM.push('find RegExp 2:'+NewLine+a.slice(0,c+RegExp.lastIndex));</span><span class="WHIT">
 | 
						||
<span class='line'>1071</span> </span><span class="WHIT">				</span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RegExp.lastIndex</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.substr</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//q=RegExp.lastIndex,alert('reg:'+Begin+','+c+','+q+'\n'+a.slice(0,Begin)+'\n-------\n'+a.slice(Begin,c+q)+'\n-------\n'+a.substr(c+q,200));return A;</span><span class="WHIT">
 | 
						||
<span class='line'>1072</span> </span><span class="WHIT">				</span><span class="COMM">//q=RegExp.lastIndex,A+=reduce_space(a.slice(0,Begin))+a.slice(Begin,c+=q),a=a.substr(c);//A+=a.slice(0,c+=RegExp.lastIndex),a=a.substr(c);//</span><span class="WHIT">
 | 
						||
<span class='line'>1073</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1074</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1075</span> </span><span class="WHIT">			</span><span class="COMM">//	quotation</span><span class="WHIT">
 | 
						||
<span class='line'>1076</span> </span><span class="WHIT">			</span><span class="COMM">//alert('quotation:\n'+a)</span><span class="WHIT">
 | 
						||
<span class='line'>1077</span> </span><span class="WHIT">			</span><span class="COMM">//reduce_codeM.push('find quotation:'+NewLine+a.substr(RegExp.index,200));</span><span class="WHIT">
 | 
						||
<span class='line'>1078</span> </span><span class="WHIT">			</span><span class="COMM">//if(++sss>mmm-2&&alert('sss='+sss+'\n'+a),sss>mmm){alert('quo');break;}</span><span class="WHIT">
 | 
						||
<span class='line'>1079</span> </span><span class="WHIT">			</span><span class="COMM">//c=RegExp.index,b=a.substr(RegExp.lastIndex-1).match(new RegExp('[^\\\\]('+(q=m)+'|\\n)'));	較正式</span><span class="WHIT">
 | 
						||
<span class='line'>1080</span> 
 | 
						||
<span class='line'>1081</span> 
 | 
						||
<span class='line'>1082</span> 
 | 
						||
<span class='line'>1083</span> </span><span class="COMM">/*
 | 
						||
<span class='line'>1084</span> 
 | 
						||
<span class='line'>1085</span>    q=m;	//	2009/8/16 15:59:02 FAILED
 | 
						||
<span class='line'>1086</span> 
 | 
						||
<span class='line'>1087</span> function test_quotation(){
 | 
						||
<span class='line'>1088</span> '\';		//	Error
 | 
						||
<span class='line'>1089</span> '\\\';		//	Error
 | 
						||
<span class='line'>1090</span> '\\\\\';	//	Error
 | 
						||
<span class='line'>1091</span> '';
 | 
						||
<span class='line'>1092</span> 'n';
 | 
						||
<span class='line'>1093</span> '\\';
 | 
						||
<span class='line'>1094</span> 'nn';
 | 
						||
<span class='line'>1095</span> '\\n';
 | 
						||
<span class='line'>1096</span> 'n\\';
 | 
						||
<span class='line'>1097</span> 'n\\n';
 | 
						||
<span class='line'>1098</span> '\\\\';
 | 
						||
<span class='line'>1099</span> '\\\\n';
 | 
						||
<span class='line'>1100</span> 'n\\\\';
 | 
						||
<span class='line'>1101</span> 'n\\\\n';
 | 
						||
<span class='line'>1102</span> 'nn\\\\';
 | 
						||
<span class='line'>1103</span> 'nn\\\\n';
 | 
						||
<span class='line'>1104</span> 'nnn\\\\';
 | 
						||
<span class='line'>1105</span> 'nnn\\\\n';
 | 
						||
<span class='line'>1106</span> }
 | 
						||
<span class='line'>1107</span> alert(reduceCode(test_quotation));
 | 
						||
<span class='line'>1108</span> 
 | 
						||
<span class='line'>1109</span> alert(reduceCode(reduceCode));
 | 
						||
<span class='line'>1110</span> */</span><span class="WHIT">
 | 
						||
<span class='line'>1111</span> 
 | 
						||
<span class='line'>1112</span> </span><span class="COMM">/*
 | 
						||
<span class='line'>1113</span> 			//	找到 '\n' 為止,考慮 [\\\\]\\r?\\n
 | 
						||
<span class='line'>1114</span> 			c = Begin + 1, b = '';
 | 
						||
<span class='line'>1115</span> 			while ((c = a.indexOf('\n', c)) != -1) {
 | 
						||
<span class='line'>1116</span> 				q = a.charAt(c - 1);
 | 
						||
<span class='line'>1117</span> 				if (q == '\\' || q == '\r' && a.charAt(c - 2) == '\\') {
 | 
						||
<span class='line'>1118</span> 					c++;
 | 
						||
<span class='line'>1119</span> 					continue;
 | 
						||
<span class='line'>1120</span> 				}
 | 
						||
<span class='line'>1121</span> 
 | 
						||
<span class='line'>1122</span> 			};
 | 
						||
<span class='line'>1123</span> 			if (a.charAt(c - 1))
 | 
						||
<span class='line'>1124</span> 
 | 
						||
<span class='line'>1125</span> 				// alert('use RegExp: '+new
 | 
						||
<span class='line'>1126</span> 				// RegExp('^([^\\\\\\r\\n]*|[\\\\][^\\r\\n]|[\\\\]\\r?\\n)*('+q+'|\\n)'));
 | 
						||
<span class='line'>1127</span> 				b = a.slice(Begin + 1).match(
 | 
						||
<span class='line'>1128</span> 						new RegExp('^([^\\\\\\r\\n]*|[\\\\][^\\r\\n]|[\\\\]\\r?\\n)*(' + q
 | 
						||
<span class='line'>1129</span> 								+ '|\\n)')); // too slow!
 | 
						||
<span class='line'>1130</span> 			alert('test string:\n' + a.slice(Begin + 1))
 | 
						||
<span class='line'>1131</span> 			if (!b || b[2] == '\n')
 | 
						||
<span class='line'>1132</span> 				throw new Error(1, 'There is a start quotation mark [' + q
 | 
						||
<span class='line'>1133</span> 						+ '] without a end quotation mark!\nbegin with:\n'
 | 
						||
<span class='line'>1134</span> 						+ a.substr(Begin, 200)); // 語法錯誤?
 | 
						||
<span class='line'>1135</span> 			q = RegExp.lastIndex + 1;
 | 
						||
<span class='line'>1136</span> */</span><span class="WHIT">
 | 
						||
<span class='line'>1137</span> 
 | 
						||
<span class='line'>1138</span> </span><span class="WHIT">			</span><span class="COMM">//	未考慮 '\n' (不能 check error!)</span><span class="WHIT">
 | 
						||
<span class='line'>1139</span> </span><span class="WHIT">			</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Begin</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1140</span> </span><span class="WHIT">			</span><span class="NAME">q</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1141</span> </span><span class="WHIT">			</span><span class="COMM">//	考慮 [\\\\]\\r?\\n</span><span class="WHIT">
 | 
						||
<span class='line'>1142</span> </span><span class="WHIT">			</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.substr</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="STRN">'([^\\\\\\r]|\\\\{2,})('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">q</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'|\\r?\\n)'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1143</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1144</span> </span><span class="WHIT">					</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RegExp.lastIndex</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1145</span> </span><span class="WHIT">				</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>1146</span> </span><span class="WHIT">					</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1147</span> 
 | 
						||
<span class='line'>1148</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'\n'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1149</span> </span><span class="WHIT">				</span><span class="COMM">//	語法錯誤?</span><span class="WHIT">
 | 
						||
<span class='line'>1150</span> </span><span class="WHIT">				</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'There is a start quotation mark ['</span><span class="WHIT">
 | 
						||
<span class='line'>1151</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">q</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'] without a end quotation mark!\nget:['</span><span class="WHIT">
 | 
						||
<span class='line'>1152</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']\nbegin with:\n'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">a.substr</span><span class="PUNC">(</span><span class="NAME">Begin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">200</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1153</span> </span><span class="WHIT">			</span><span class="COMM">//reduce_codeM.push('find quota ['+q+']:'+NewLine+a.substr(c,RegExp.lastIndex)+NewLine+'continue:'+NewLine+a.substr(c+RegExp.lastIndex,99));</span><span class="WHIT">
 | 
						||
<span class='line'>1154</span> 
 | 
						||
<span class='line'>1155</span> </span><span class="WHIT">			</span><span class="NAME">q</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RegExp.lastIndex</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1156</span> 
 | 
						||
<span class='line'>1157</span> 
 | 
						||
<span class='line'>1158</span> 
 | 
						||
<span class='line'>1159</span> </span><span class="WHIT">			</span><span class="COMM">//alert('q='+q+',['+b[0]+']');</span><span class="WHIT">
 | 
						||
<span class='line'>1160</span> </span><span class="WHIT">			</span><span class="COMM">//alert(b[1]);</span><span class="WHIT">
 | 
						||
<span class='line'>1161</span> </span><span class="WHIT">			</span><span class="COMM">//alert(b[2]);</span><span class="WHIT">
 | 
						||
<span class='line'>1162</span> 
 | 
						||
<span class='line'>1163</span> </span><span class="WHIT">			</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.substr</span><span class="PUNC">(</span><span class="NAME">Begin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\\\r?\n/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1164</span> </span><span class="WHIT">			</span><span class="COMM">//alert('mode='+mode);</span><span class="WHIT">
 | 
						||
<span class='line'>1165</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">mode</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1166</span> </span><span class="WHIT">				</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1167</span> </span><span class="WHIT">				</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><=</span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1168</span> </span><span class="WHIT">					</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">b.charCodeAt</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">127</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'\\u'</span><span class="WHIT">
 | 
						||
<span class='line'>1169</span> </span><span class="WHIT">							</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b.charCodeAt</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toString</span><span class="PUNC">(</span><span class="NUMB">16</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT">
 | 
						||
<span class='line'>1170</span> </span><span class="WHIT">							</span><span class="PUNC">.</span><span class="NAME">charAt</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1171</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1172</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1173</span> 
 | 
						||
<span class='line'>1174</span> </span><span class="WHIT">			</span><span class="COMM">//A+=a.slice(0,c+=RegExp.lastIndex),a=a.substr(c);</span><span class="WHIT">
 | 
						||
<span class='line'>1175</span> </span><span class="WHIT">			</span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">reduce_space</span><span class="PUNC">(</span><span class="NAME">a.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Begin</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a.substr</span><span class="PUNC">(</span><span class="NAME">Begin</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1176</span> 
 | 
						||
<span class='line'>1177</span> </span><span class="WHIT">			</span><span class="COMM">//alert('A='+A);</span><span class="WHIT">
 | 
						||
<span class='line'>1178</span> </span><span class="WHIT">			</span><span class="COMM">//alert('a='+a);</span><span class="WHIT">
 | 
						||
<span class='line'>1179</span> 
 | 
						||
<span class='line'>1180</span> </span><span class="WHIT">			</span><span class="COMM">//	對於 ~';{ → ~'{ 或  ~';if → ~'if  不被接受。</span><span class="WHIT">
 | 
						||
<span class='line'>1181</span> </span><span class="WHIT">			</span><span class="COMM">//if(!/^[\s\r\n]*\}/.test(a))A+=';';</span><span class="WHIT">
 | 
						||
<span class='line'>1182</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1183</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1184</span> 
 | 
						||
<span class='line'>1185</span> </span><span class="WHIT">	</span><span class="COMM">//	後續處理</span><span class="WHIT">
 | 
						||
<span class='line'>1186</span> </span><span class="WHIT">	</span><span class="NAME">A</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">reduce_space</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1187</span> </span><span class="WHIT">	</span><span class="COMM">//	這兩行在 reduce_space() 中已處理</span><span class="WHIT">
 | 
						||
<span class='line'>1188</span> </span><span class="WHIT">	</span><span class="COMM">//A=A.replace(/([^;])\s*\n+\s*/g,'$1;');</span><span class="WHIT">
 | 
						||
<span class='line'>1189</span> </span><span class="WHIT">	</span><span class="COMM">//A=A.replace(/\s*\n+\s*/g,'');//while(A.match(/\s*\n\s*/))A=A.replace(/\s*\n\s*/g,'');//</span><span class="WHIT">
 | 
						||
<span class='line'>1190</span> 
 | 
						||
<span class='line'>1191</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">A</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1192</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1193</span> 
 | 
						||
<span class='line'>1194</span> </span><span class="COMM">/*	tech. data:
 | 
						||
<span class='line'>1195</span> 
 | 
						||
<span class='line'>1196</span> string:
 | 
						||
<span class='line'>1197</span> ['"]~$1
 | 
						||
<span class='line'>1198</span> 
 | 
						||
<span class='line'>1199</span> RegExp:
 | 
						||
<span class='line'>1200</span> [/]~$1[a-z]*
 | 
						||
<span class='line'>1201</span> [/]~$1[gim]*
 | 
						||
<span class='line'>1202</span> =RegExp.[source|test(|exec(]
 | 
						||
<span class='line'>1203</span> 
 | 
						||
<span class='line'>1204</span> .match(RegExp)
 | 
						||
<span class='line'>1205</span> .replace(RegExp,)
 | 
						||
<span class='line'>1206</span> .search(RegExp)
 | 
						||
<span class='line'>1207</span> 
 | 
						||
<span class='line'>1208</span> op[/]:
 | 
						||
<span class='line'>1209</span> word/word
 | 
						||
<span class='line'>1210</span> word/=word
 | 
						||
<span class='line'>1211</span> 
 | 
						||
<span class='line'>1212</span> ~:
 | 
						||
<span class='line'>1213</span> /\\{0,2,4,6,..}$/
 | 
						||
<span class='line'>1214</span> 
 | 
						||
<span class='line'>1215</span> 註解comment:
 | 
						||
<span class='line'>1216</span> /*~* /
 | 
						||
<span class='line'>1217</span> //~\n
 | 
						||
<span class='line'>1218</span> 
 | 
						||
<span class='line'>1219</span> 符號denotation:/[+-*=/()&^,<>|!~%\[\]?:{};]+/
 | 
						||
<span class='line'>1220</span> +-
 | 
						||
<span class='line'>1221</span> word:/[\w]+/
 | 
						||
<span class='line'>1222</span> 
 | 
						||
<span class='line'>1223</span> program:
 | 
						||
<span class='line'>1224</span> ((denotation|word|comment)+(string|RegExp)*)+
 | 
						||
<span class='line'>1225</span> 
 | 
						||
<span class='line'>1226</span> test:
 | 
						||
<span class='line'>1227</span> i++ +
 | 
						||
<span class='line'>1228</span> a+=++i+4
 | 
						||
<span class='line'>1229</span> ++a+i++==++j+ ++e
 | 
						||
<span class='line'>1230</span> a++ += ++d
 | 
						||
<span class='line'>1231</span> a++ + ++b
 | 
						||
<span class='line'>1232</span> 
 | 
						||
<span class='line'>1233</span> for(.*;;)
 | 
						||
<span class='line'>1234</span> 
 | 
						||
<span class='line'>1235</span> 
 | 
						||
<span class='line'>1236</span> */</span><span class="WHIT">
 | 
						||
<span class='line'>1237</span> </span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'>1238</span> </span><span class="PUNC">.</span><span class="WHIT">
 | 
						||
<span class='line'>1239</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>1240</span>  * 精簡程式碼部分:去掉\n,;前後的空白等,應由 reduce_code() 呼叫。
 | 
						||
<span class='line'>1241</span>  * @param code	輸入欲精簡之程式碼
 | 
						||
<span class='line'>1242</span>  * @returns	{String}	精簡後之程式碼
 | 
						||
<span class='line'>1243</span>  * @see
 | 
						||
<span class='line'>1244</span>  * http://dean.edwards.name/packer/
 | 
						||
<span class='line'>1245</span>  * @memberOf	CeL.code.reorganize
 | 
						||
<span class='line'>1246</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'>1247</span> </span><span class="NAME">reduce_code.reduce_space</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">code</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1248</span> </span><span class="WHIT">	</span><span class="COMM">//	比下一行快很多,但為了正確性而放棄。</span><span class="WHIT">
 | 
						||
<span class='line'>1249</span> </span><span class="WHIT">	</span><span class="COMM">//code=code.replace(/\s*\n+\s/g,'');</span><span class="WHIT">
 | 
						||
<span class='line'>1250</span> </span><span class="WHIT">	</span><span class="COMM">//	當每一行都去除\n也可時方能使用!否則會出現「需要;」的錯誤!</span><span class="WHIT">
 | 
						||
<span class='line'>1251</span> </span><span class="WHIT">	</span><span class="NAME">code</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">code</span><span class="WHIT">
 | 
						||
<span class='line'>1252</span> </span><span class="WHIT">		</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="WHIT">
 | 
						||
<span class='line'>1253</span> </span><span class="WHIT">			</span><span class="REGX">/([^\s]?)\s*\n+\s*([^\s]?)/g</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1254</span> </span><span class="WHIT">			</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1255</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$2</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1256</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT">
 | 
						||
<span class='line'>1257</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">a.match</span><span class="PUNC">(</span><span class="REGX">/\w/</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">b.match</span><span class="PUNC">(</span><span class="REGX">/\w/</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1258</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1259</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1260</span> </span><span class="WHIT">		</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\s+$|^\s+/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1261</span> 
 | 
						||
<span class='line'>1262</span> </span><span class="WHIT">	</span><span class="COMM">//if(code.match(/\s+$/))code=code.slice(0,RegExp.index);</span><span class="WHIT">
 | 
						||
<span class='line'>1263</span> </span><span class="WHIT">	</span><span class="COMM">//if(code.match(/^\s+/))code=code.substr(RegExp.lastIndex);</span><span class="WHIT">
 | 
						||
<span class='line'>1264</span> 
 | 
						||
<span class='line'>1265</span> </span><span class="WHIT">	</span><span class="COMM">//	對喜歡將\n當作;的,請使用下面的;但這可能造成失誤,例如[a=(b+c)\nif(~)]與[if(~)\nif(~)]</span><span class="WHIT">
 | 
						||
<span class='line'>1266</span> </span><span class="WHIT">	</span><span class="COMM">/*
 | 
						||
<span class='line'>1267</span> 	var m, a;
 | 
						||
<span class='line'>1268</span> 	while (m = code.match(/\s*\n+\s*(.?)/))
 | 
						||
<span class='line'>1269</span> 		a = RegExp.lastIndex, code = code.slice(0, RegExp.index)
 | 
						||
<span class='line'>1270</span> 				+ (m[1].match(/\w/) ? ';' : '')
 | 
						||
<span class='line'>1271</span> 				+ code.substr(a - (m[1] ? 1 : 0));
 | 
						||
<span class='line'>1272</span> 	if (m = code.match(/\s+$/))
 | 
						||
<span class='line'>1273</span> 		code = code.slice(0, RegExp.index);
 | 
						||
<span class='line'>1274</span> 	if (m = code.match(/^\s+(.?)/)) {
 | 
						||
<span class='line'>1275</span> 		code = code.substr(RegExp.lastIndex - 1);
 | 
						||
<span class='line'>1276</span> 		if ((m[0].indexOf('\n') != -1 && m[1].match(/\w/)))
 | 
						||
<span class='line'>1277</span> 			code = ';' + code;
 | 
						||
<span class='line'>1278</span> 	}
 | 
						||
<span class='line'>1279</span> 	*/</span><span class="WHIT">
 | 
						||
<span class='line'>1280</span> 
 | 
						||
<span class='line'>1281</span> </span><span class="WHIT">	</span><span class="NAME">code</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">code</span><span class="WHIT">
 | 
						||
<span class='line'>1282</span> </span><span class="WHIT">	</span><span class="COMM">//	最後再作</span><span class="WHIT">
 | 
						||
<span class='line'>1283</span> </span><span class="WHIT">	</span><span class="COMM">//.replace(/([^;])\s*\n+\s*/g,'$1;').replace(/\s*\n+\s*/g,'')</span><span class="WHIT">
 | 
						||
<span class='line'>1284</span> 
 | 
						||
<span class='line'>1285</span> </span><span class="WHIT">	</span><span class="COMM">//	因為直接執行下行敘述會將for(~;;也變成for(~;,所以需先作處理。</span><span class="WHIT">
 | 
						||
<span class='line'>1286</span> </span><span class="WHIT">	</span><span class="COMM">//.replace(/for\s*\(([^;]*);\s*;/g,'for;#$1#')</span><span class="WHIT">
 | 
						||
<span class='line'>1287</span> </span><span class="WHIT">	</span><span class="COMM">//	在''等之中執行此行可能出問題,因此另外置此函數。</span><span class="WHIT">
 | 
						||
<span class='line'>1288</span> </span><span class="WHIT">	</span><span class="COMM">//.replace(/\s*;+\s*/g,';')</span><span class="WHIT">
 | 
						||
<span class='line'>1289</span> 
 | 
						||
<span class='line'>1290</span> </span><span class="WHIT">	</span><span class="COMM">//.replace(/for;#([^#]*)#/g,'for($1;;')</span><span class="WHIT">
 | 
						||
<span class='line'>1291</span> 
 | 
						||
<span class='line'>1292</span> 
 | 
						||
<span class='line'>1293</span> </span><span class="WHIT">	</span><span class="COMM">//.replace(/(.)\s+([+\-]+)/g,function($0,$1,$2){return $1+($1=='+'||$1=='-'?' ':'')+$2;}).replace(/([+-]+)\s+(.)/g,function($0,$1,$2){return $1+($2=='+'||$2=='-'?' ':'')+$2;})	//	+ ++ +</span><span class="WHIT">
 | 
						||
<span class='line'>1294</span> </span><span class="WHIT">	</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/([+\-])\s+([+\-])/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1 $2'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/([^+\-])\s+([+-])/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1$2'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/([+\-])\s+([^+\-])/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1$2'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">// + ++ +</span><span class="WHIT">
 | 
						||
<span class='line'>1295</span> 
 | 
						||
<span class='line'>1296</span> </span><span class="WHIT">	</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\s*([()\[\]&|^{*\/%<>,~!?:.]+)\s*/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="WHIT">	</span><span class="COMM">//	.replace(/\s*([()\[\]&|{}/%,!]+)\s*/g,'$1')	//	去掉'}',因為可能是=function(){};或={'ucC':1};</span><span class="WHIT">
 | 
						||
<span class='line'>1297</span> </span><span class="WHIT">	</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/([a-zA-Z])\s+([=+\-])/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1$2'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/([=+\-])\s+([a-zA-Z])/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1$2'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1298</span> 
 | 
						||
<span class='line'>1299</span> </span><span class="WHIT">	</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\s*([+\-*\/%=!&^<>]+=)\s*/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1300</span> </span><span class="WHIT">	</span><span class="COMM">//.replace(/\s*([{}+\-*/%,!]|[+\-*\/=!<>]?=|++|--)\s*/g,'$1')</span><span class="WHIT">
 | 
						||
<span class='line'>1301</span> 
 | 
						||
<span class='line'>1302</span> 
 | 
						||
<span class='line'>1303</span> </span><span class="WHIT">	</span><span class="COMM">//	因為直接執行下行敘述會將for(~;;也變成for(~;,所以需先作處理。</span><span class="WHIT">
 | 
						||
<span class='line'>1304</span> </span><span class="WHIT">	</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/for\(([^;]*);;/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'for;#$1#'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1305</span> </span><span class="WHIT">	</span><span class="COMM">//.replace(/};+/g,'}')	/*.replace(/;{2,}{/g,'{')*/.replace(/{;+/g,'{')//.replace(/;*{;*/g,'{')//在quotation作修正成效不彰</span><span class="WHIT">
 | 
						||
<span class='line'>1306</span> </span><span class="WHIT">	</span><span class="COMM">//	去掉'}',因為可能是=function(){};或={'ucC':1};</span><span class="WHIT">
 | 
						||
<span class='line'>1307</span> </span><span class="WHIT">	</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\s*([{;]);+\s*/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="COMM">//.replace(/\s*([{};]);+\s*/g,'$1')</span><span class="WHIT">
 | 
						||
<span class='line'>1308</span> </span><span class="WHIT">	</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/for;#([^#]*)#/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'for($1;;'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1309</span> 
 | 
						||
<span class='line'>1310</span> </span><span class="WHIT">	</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\s{2,}/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1311</span> </span><span class="WHIT">	</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/([^)]);}/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1}'</span><span class="PUNC">)</span><span class="WHIT">	</span><span class="COMM">//	~;while(~);}	but: ~;i=(~);} , {a.b();}</span><span class="WHIT">
 | 
						||
<span class='line'>1312</span> </span><span class="WHIT">	</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1313</span> </span><span class="WHIT">	</span><span class="COMM">//if(code.charAt(0)=="'")code=(code.charAt(1)=='}'?'}':code.charAt(1)==';'?'':code.charAt(1))+code.substr(2);</span><span class="WHIT">
 | 
						||
<span class='line'>1314</span> 
 | 
						||
<span class='line'>1315</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">code</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1316</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1317</span> 
 | 
						||
<span class='line'>1318</span> 
 | 
						||
<span class='line'>1319</span> 
 | 
						||
<span class='line'>1320</span> </span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'>1321</span> </span><span class="PUNC">.</span><span class="WHIT">
 | 
						||
<span class='line'>1322</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>1323</span>  * 精簡整個檔的程式碼
 | 
						||
<span class='line'>1324</span>  * …and test程式是否有語法不全處(例如沒加';')
 | 
						||
<span class='line'>1325</span>  * @param original_ScriptFileName	origin javascript file name
 | 
						||
<span class='line'>1326</span>  * @param output_ScriptFileName	target javascript file name
 | 
						||
<span class='line'>1327</span>  * @param flag
 | 
						||
<span class='line'>1328</span>  * 	flag={doTest:bool,doReport:bool,outEnc:(enc),copyOnFailed:bool,startFrom:// | '',addBefore:'',runBefore:function}
 | 
						||
<span class='line'>1329</span>  * 	startFrom 若為 // 則應為 startAfter!!
 | 
						||
<span class='line'>1330</span>  * @requires	autodetectEncode,simpleRead,simpleWrite,reduce_code,is_file
 | 
						||
<span class='line'>1331</span>  * @deprecated use <a href="http://closure-compiler.appspot.com/" accessdate="2009/12/3 12:13">Closure Compiler Service</a>
 | 
						||
<span class='line'>1332</span>  * @memberOf	CeL.code.reorganize
 | 
						||
<span class='line'>1333</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'>1334</span> </span><span class="NAME">reduce_script</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">original_ScriptFileName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">output_ScriptFileName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1335</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">original_ScriptFileName</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1336</span> </span><span class="WHIT">		</span><span class="NAME">original_ScriptFileName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">WScript.ScriptFullName</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1337</span> 
 | 
						||
<span class='line'>1338</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">output_ScriptFileName</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1339</span> </span><span class="WHIT">		</span><span class="NAME">output_ScriptFileName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
 | 
						||
<span class='line'>1340</span> </span><span class="WHIT">			</span><span class="COMM">//	getFP(original_ScriptFileName.replace(/\.ori/,''),1);</span><span class="WHIT">
 | 
						||
<span class='line'>1341</span> </span><span class="WHIT">			</span><span class="NAME">original_ScriptFileName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
 | 
						||
<span class='line'>1342</span> </span><span class="WHIT">				</span><span class="COMM">//.compressed.js</span><span class="WHIT">
 | 
						||
<span class='line'>1343</span> </span><span class="WHIT">				</span><span class="STRN">'.reduced.js'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1344</span> 
 | 
						||
<span class='line'>1345</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">flag</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1346</span> </span><span class="WHIT">		</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1347</span> 
 | 
						||
<span class='line'>1348</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">fso</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1349</span> </span><span class="WHIT">		</span><span class="NAME">fso</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">ActiveXObject</span><span class="PUNC">(</span><span class="STRN">"Scripting.FileSystemObject"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1350</span> 
 | 
						||
<span class='line'>1351</span> </span><span class="WHIT">	</span><span class="COMM">// 同檔名偵測(若自行把 .ori 改成標的檔等,把標的檔先 copy 成原來檔案。)</span><span class="WHIT">
 | 
						||
<span class='line'>1352</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">original_ScriptFileName</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">output_ScriptFileName</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1353</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">WshShell.Popup</span><span class="PUNC">(</span><span class="STRN">'origin file and output file is the same!'</span><span class="WHIT">
 | 
						||
<span class='line'>1354</span> </span><span class="WHIT">				</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag.originFile</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">"\nI'll try to copy it back."</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1355</span> </span><span class="WHIT">				</span><span class="STRN">'Copy target as origin file'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">48</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1356</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1357</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">flag.originFile</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1358</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1359</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">is_file</span><span class="PUNC">(</span><span class="NAME">original_ScriptFileName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">flag.originFile</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1360</span> </span><span class="WHIT">			</span><span class="NAME">alert</span><span class="PUNC">(</span><span class="STRN">'origin file is exist! Please rename the file!'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1361</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1362</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1363</span> </span><span class="WHIT">		</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1364</span> </span><span class="WHIT">			</span><span class="NAME">fso.CopyFile</span><span class="PUNC">(</span><span class="NAME">output_ScriptFileName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">original_ScriptFileName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1365</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1366</span> </span><span class="WHIT">			</span><span class="NAME">alert</span><span class="PUNC">(</span><span class="STRN">'Failed to copy file!'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1367</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1368</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1369</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1370</span> 
 | 
						||
<span class='line'>1371</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">is_file</span><span class="PUNC">(</span><span class="NAME">original_ScriptFileName</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1372</span> </span><span class="WHIT">		</span><span class="NAME">alert</span><span class="PUNC">(</span><span class="STRN">"Doesn't found original javascript file!\n"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">original_ScriptFileName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1373</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1374</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1375</span> 
 | 
						||
<span class='line'>1376</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">sp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="PUNC">.</span><span class="NAME">x</span><span class="PUNC">(</span><span class="NUMB">80</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">reduce_codeM</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">enc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">autodetectEncode</span><span class="PUNC">(</span><span class="NAME">original_ScriptFileName</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">outenc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">autodetectEncode</span><span class="PUNC">(</span><span class="NAME">output_ScriptFileName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1377</span> 
 | 
						||
<span class='line'>1378</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">flag.outEnc</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1379</span> </span><span class="WHIT">		</span><span class="NAME">flag.outEnc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">outenc</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">enc</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">TristateTrue</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1380</span> 
 | 
						||
<span class='line'>1381</span> </span><span class="WHIT">	</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1382</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">f</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">simpleRead</span><span class="PUNC">(</span><span class="NAME">original_ScriptFileName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">enc</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1383</span> </span><span class="WHIT">		</span><span class="NAME">ot</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">simpleRead</span><span class="PUNC">(</span><span class="NAME">output_ScriptFileName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">flag.outEnc</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1384</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">f</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1385</span> </span><span class="WHIT">			</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"Can't read file ["</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">original_ScriptFileName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"]!"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1386</span> </span><span class="WHIT">		</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">flag.runBefore</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">flag.runBefore</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">f</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1387</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag.startFrom</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1388</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">flag.startFrom</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1389</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t.indexOf</span><span class="PUNC">(</span><span class="NAME">flag.startFrom</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1390</span> </span><span class="WHIT">					</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t.slice</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1391</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag.startFrom</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1392</span> </span><span class="WHIT">				</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t.replace</span><span class="PUNC">(</span><span class="NAME">flag.startFrom</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1393</span> </span><span class="WHIT">		</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">reduce_code</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1394</span> </span><span class="WHIT">		</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag.addBefore</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1395</span> </span><span class="WHIT">				</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t.replace</span><span class="PUNC">(</span><span class="REGX">/([};])function(\s)/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1\nfunction$2'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="WHIT">
 | 
						||
<span class='line'>1396</span> </span><span class="WHIT">						</span><span class="REGX">/}var(\s)/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'}\nvar$1'</span><span class="PUNC">)</span><span class="COMM">/* .replace(/([;}])([a-z\._\d]+=)/ig,'$1\n$2') */</span><span class="WHIT">
 | 
						||
<span class='line'>1397</span> </span><span class="WHIT">				</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">reduce_codeM.join</span><span class="PUNC">(</span><span class="NAME">NewLine</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">sp</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1398</span> </span><span class="WHIT">		</span><span class="COMM">// 不相同才 run</span><span class="WHIT">
 | 
						||
<span class='line'>1399</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1400</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">ot</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">outenc</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">flag.outEnc</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1401</span> </span><span class="WHIT">				</span><span class="NAME">simpleWrite</span><span class="PUNC">(</span><span class="NAME">output_ScriptFileName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">flag.outEnc</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1402</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>1403</span> </span><span class="WHIT">				</span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'* 欲寫入之內容('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t.length</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' chars)與標的檔相同。檔案並未變更。\n'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1404</span> 
 | 
						||
<span class='line'>1405</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag.doTest</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1406</span> </span><span class="WHIT">			</span><span class="COMM">// void //should use windows.eval</span><span class="WHIT">
 | 
						||
<span class='line'>1407</span> </span><span class="WHIT">			</span><span class="COMM">// //if(WScript.ScriptName!=output_ScriptFileName)eval(t);</span><span class="WHIT">
 | 
						||
<span class='line'>1408</span> </span><span class="WHIT">			</span><span class="NAME">eval</span><span class="PUNC">(</span><span class="STRN">'if(0){if(0){if(0){'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'}}}'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1409</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag.doReport</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1410</span> </span><span class="WHIT">			</span><span class="NAME">alert</span><span class="PUNC">(</span><span class="STRN">'OK!\n'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'\n'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">f.length</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'→'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t.length</span><span class="WHIT">
 | 
						||
<span class='line'>1411</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'(origin output: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">ot.length</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">') ('</span><span class="WHIT">
 | 
						||
<span class='line'>1412</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NUMB">100</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">t.length</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">f.length</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">decp</span><span class="PUNC">(</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'%)\n\n['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">enc</span><span class="WHIT">
 | 
						||
<span class='line'>1413</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'] '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">original_ScriptFileName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'\n→\n['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">flag.outEnc</span><span class="WHIT">
 | 
						||
<span class='line'>1414</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'] '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">output_ScriptFileName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1415</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1416</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NUMB">6</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">alert</span><span class="PUNC">(</span><span class="WHIT">
 | 
						||
<span class='line'>1417</span> </span><span class="WHIT">				</span><span class="STRN">'reduce_script: Error occured!\nDo you want to write error message to target file?\n'</span><span class="WHIT">
 | 
						||
<span class='line'>1418</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">output_ScriptFileName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">32</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1419</span> </span><span class="WHIT">			</span><span class="NAME">simpleWrite</span><span class="PUNC">(</span><span class="NAME">output_ScriptFileName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">popErr</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="WHIT">
 | 
						||
<span class='line'>1420</span> </span><span class="WHIT">					</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">reduce_codeM.join</span><span class="PUNC">(</span><span class="NAME">NewLine</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">sp</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">TristateTrue</span><span class="COMM">/* enc */</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1421</span> </span><span class="WHIT">					</span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1422</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag.copyOnFailed</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1423</span> </span><span class="WHIT">			</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1424</span> </span><span class="WHIT">				</span><span class="NAME">fso.CopyFile</span><span class="PUNC">(</span><span class="NAME">original_ScriptFileName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">output_ScriptFileName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1425</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1426</span> </span><span class="WHIT">				</span><span class="NAME">alert</span><span class="PUNC">(</span><span class="STRN">'Failed to copy file!'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1427</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1428</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1429</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1430</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1431</span> 
 | 
						||
<span class='line'>1432</span> 
 | 
						||
<span class='line'>1433</span> 
 | 
						||
<span class='line'>1434</span> 
 | 
						||
<span class='line'>1435</span> </span><span class="COMM">/*
 | 
						||
<span class='line'>1436</span> !! arguments unfinished !!
 | 
						||
<span class='line'>1437</span> 
 | 
						||
<span class='line'>1438</span> usage: include code in front:
 | 
						||
<span class='line'>1439</span> //	[function.js]_iF,rJS
 | 
						||
<span class='line'>1440</span> //	[function.js]End
 | 
						||
<span class='line'>1441</span> 
 | 
						||
<span class='line'>1442</span> rJS({add:'/*\nCopyright 2008 kanashimi\n欲使用此工具功能者,請聯絡作者。\n*\/\n'});
 | 
						||
<span class='line'>1443</span> 
 | 
						||
<span class='line'>1444</span> //	code start
 | 
						||
<span class='line'>1445</span> 
 | 
						||
<span class='line'>1446</span> (main code)..
 | 
						||
<span class='line'>1447</span> 
 | 
						||
<span class='line'>1448</span> */</span><span class="WHIT">
 | 
						||
<span class='line'>1449</span> </span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'>1450</span> </span><span class="PUNC">.</span><span class="WHIT">
 | 
						||
<span class='line'>1451</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>1452</span>  * 縮減 HTML 用 .js大小+自動判別。
 | 
						||
<span class='line'>1453</span>  * TODO:
 | 
						||
<span class='line'>1454</span>  * 自動選擇 target 之模式(不一定是 .ori)
 | 
						||
<span class='line'>1455</span>  * @param flag	flag
 | 
						||
<span class='line'>1456</span>  * @requires	reduce_script
 | 
						||
<span class='line'>1457</span>  * @since	2008/7/31 17:40:40
 | 
						||
<span class='line'>1458</span>  * @memberOf	CeL.code.reorganize
 | 
						||
<span class='line'>1459</span>  */</span><span class="WHIT">
 | 
						||
<span class='line'>1460</span> </span><span class="NAME">rJS</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1461</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">WScript</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1462</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">WScript</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1463</span> 
 | 
						||
<span class='line'>1464</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">reduce_script</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1465</span> </span><span class="WHIT">			</span><span class="NAME">o.Echo</span><span class="PUNC">(</span><span class="STRN">'Please include function reduce_script() to generate code.'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1466</span> </span><span class="WHIT">		</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>1467</span> </span><span class="WHIT">			</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1468</span> </span><span class="WHIT">			</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o.ScriptFullName</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1469</span> </span><span class="WHIT">			</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n.replace</span><span class="PUNC">(</span><span class="REGX">/\.ori/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1470</span> </span><span class="WHIT">			</span><span class="NAME">reduce_script</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1471</span> </span><span class="WHIT">				</span><span class="NAME">doReport</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1472</span> </span><span class="WHIT">				</span><span class="NAME">outEnc</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'UTF-8'</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1473</span> </span><span class="WHIT">				</span><span class="NAME">startFrom</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">flag.cut</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="REGX">/^(.|\n)+code\s+start\r?\n/</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1474</span> </span><span class="WHIT">				</span><span class="NAME">addBefore</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">flag.add</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1475</span> </span><span class="WHIT">				</span><span class="NAME">originFile</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">t.replace</span><span class="PUNC">(</span><span class="NAME">flag.ori</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="REGX">/(\.[^.]+)$/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'.ori$1'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1476</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1477</span> 
 | 
						||
<span class='line'>1478</span> </span><span class="WHIT">		</span><span class="NAME">o.Quit</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1479</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1480</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1481</span> 
 | 
						||
<span class='line'>1482</span> 
 | 
						||
<span class='line'>1483</span> </span><span class="COMM">/*
 | 
						||
<span class='line'>1484</span> try{var o;try{o=new ActiveXObject('Microsoft.XMLHTTP')}catch(e){o=new XMLHttpRequest()}with(o)open('GET',(new ActiveXObject("WScript.Shell")).RegRead('HKCU\\Software\\Colorless echo\\CeL.path'),false),send(null),eval(responseText)}catch(e){}
 | 
						||
<span class='line'>1485</span> 
 | 
						||
<span class='line'>1486</span> */</span><span class="WHIT">
 | 
						||
<span class='line'>1487</span> </span><span class="COMM">//(''+CeL.library_loader).replace(/^\s*function\s*\(\s*\)\s*{\s*/,'').replace(/\s*}\s*;\s*$/,'');</span><span class="WHIT">
 | 
						||
<span class='line'>1488</span> </span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'>1489</span> </span><span class="PUNC">.</span><span class="WHIT">
 | 
						||
<span class='line'>1490</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>1491</span> * for 引用: include library 自 registry 中的 path
 | 
						||
<span class='line'>1492</span> * @since	2009/11/25 22:59:02
 | 
						||
<span class='line'>1493</span> * @_memberOf	_module_
 | 
						||
<span class='line'>1494</span> */</span><span class="WHIT">
 | 
						||
<span class='line'>1495</span> </span><span class="NAME">library_loader_by_registry</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1496</span> </span><span class="WHIT">	</span><span class="COMM">//if (typeof WScript == "object")</span><span class="WHIT">
 | 
						||
<span class='line'>1497</span> </span><span class="WHIT">	</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1498</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1499</span> </span><span class="WHIT">		</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1500</span> </span><span class="WHIT">			</span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">ActiveXObject</span><span class="PUNC">(</span><span class="STRN">'Microsoft.XMLHTTP'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1501</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1502</span> </span><span class="WHIT">			</span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">XMLHttpRequest</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1503</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1504</span> </span><span class="WHIT">		</span><span class="KEYW">with</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1505</span> </span><span class="WHIT">			</span><span class="NAME">open</span><span class="PUNC">(</span><span class="STRN">'GET'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">ActiveXObject</span><span class="PUNC">(</span><span class="STRN">"WScript.Shell"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">RegRead</span><span class="PUNC">(</span><span class="NAME">library_namespace.env.registry_key</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1506</span> </span><span class="WHIT">				</span><span class="NAME">send</span><span class="PUNC">(</span><span class="KEYW">null</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1507</span> </span><span class="WHIT">				</span><span class="NAME">eval</span><span class="PUNC">(</span><span class="NAME">responseText</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1508</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1509</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1510</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1511</span> 
 | 
						||
<span class='line'>1512</span> 
 | 
						||
<span class='line'>1513</span> </span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'>1514</span> </span><span class="PUNC">.</span><span class="WHIT">
 | 
						||
<span class='line'>1515</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>1516</span> * get various from code
 | 
						||
<span class='line'>1517</span> * @param {String} code	程式碼
 | 
						||
<span class='line'>1518</span> * @param {Boolean} fill_code	(TODO) 不只是定義,在 .code 填入程式碼。
 | 
						||
<span class='line'>1519</span> * @return	{Object}	root namespace
 | 
						||
<span class='line'>1520</span> * @since	2009/12/5 15:04:42, 2009/12/20 14:33:30, 2010/7/7 10:58:22
 | 
						||
<span class='line'>1521</span> * @_memberOf	_module_
 | 
						||
<span class='line'>1522</span> */</span><span class="WHIT">
 | 
						||
<span class='line'>1523</span> </span><span class="NAME">get_various_from_code</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">code</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">fill_code</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1524</span> </span><span class="WHIT">	</span><span class="COMM">//library_namespace.log(''+code.slice(0, 100));</span><span class="WHIT">
 | 
						||
<span class='line'>1525</span> 
 | 
						||
<span class='line'>1526</span> </span><span class="WHIT">	</span><span class="COMM">//	使用 .split(/\r?\n/) 應注意:這實際上等於 .split(/(\r?\n)+/) (??)</span><span class="WHIT">
 | 
						||
<span class='line'>1527</span> </span><span class="WHIT">	</span><span class="NAME">code</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">code.split</span><span class="PUNC">(</span><span class="REGX">/\r?\n/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1528</span> 
 | 
						||
<span class='line'>1529</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">last_code</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1530</span> </span><span class="WHIT">	</span><span class="COMM">/**
 | 
						||
<span class='line'>1531</span> 	 * 現在所處之 line
 | 
						||
<span class='line'>1532</span> 	 * 
 | 
						||
<span class='line'>1533</span> 	 * @inner
 | 
						||
<span class='line'>1534</span> 	 * @ignore
 | 
						||
<span class='line'>1535</span> 	 */</span><span class="WHIT">
 | 
						||
<span class='line'>1536</span> </span><span class="WHIT">	</span><span class="NAME">line</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1537</span> </span><span class="WHIT">	</span><span class="COMM">/**
 | 
						||
<span class='line'>1538</span> 	 * code.length, 加快速度用
 | 
						||
<span class='line'>1539</span> 	 * 
 | 
						||
<span class='line'>1540</span> 	 * @constant
 | 
						||
<span class='line'>1541</span> 	 * @inner
 | 
						||
<span class='line'>1542</span> 	 * @ignore
 | 
						||
<span class='line'>1543</span> 	 */</span><span class="WHIT">
 | 
						||
<span class='line'>1544</span> </span><span class="WHIT">	</span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">code.length</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1545</span> </span><span class="WHIT">	</span><span class="COMM">/**
 | 
						||
<span class='line'>1546</span> 	 * root namespace
 | 
						||
<span class='line'>1547</span> 	 * 
 | 
						||
<span class='line'>1548</span> 	 * @inner
 | 
						||
<span class='line'>1549</span> 	 * @ignore
 | 
						||
<span class='line'>1550</span> 	 */</span><span class="WHIT">
 | 
						||
<span class='line'>1551</span> </span><span class="WHIT">	</span><span class="NAME">ns</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1552</span> </span><span class="WHIT">	</span><span class="COMM">/**
 | 
						||
<span class='line'>1553</span> 	 * 暫存 code(變數定義)
 | 
						||
<span class='line'>1554</span> 	 * 
 | 
						||
<span class='line'>1555</span> 	 * @inner
 | 
						||
<span class='line'>1556</span> 	 * @ignore
 | 
						||
<span class='line'>1557</span> 	 */</span><span class="WHIT">
 | 
						||
<span class='line'>1558</span> </span><span class="WHIT">	</span><span class="NAME">tmp_code</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1559</span> </span><span class="WHIT">	</span><span class="COMM">/**
 | 
						||
<span class='line'>1560</span> 	 * 名稱暫存變數
 | 
						||
<span class='line'>1561</span> 	 * 
 | 
						||
<span class='line'>1562</span> 	 * @inner
 | 
						||
<span class='line'>1563</span> 	 * @ignore
 | 
						||
<span class='line'>1564</span> 	 */</span><span class="WHIT">
 | 
						||
<span class='line'>1565</span> </span><span class="WHIT">	</span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1566</span> </span><span class="WHIT">	</span><span class="COMM">/**
 | 
						||
<span class='line'>1567</span> 	 * arguments 暫存變數<br/>
 | 
						||
<span class='line'>1568</span> 	 * e.g., 變數 name
 | 
						||
<span class='line'>1569</span> 	 * 
 | 
						||
<span class='line'>1570</span> 	 * @inner
 | 
						||
<span class='line'>1571</span> 	 * @ignore
 | 
						||
<span class='line'>1572</span> 	 */</span><span class="WHIT">
 | 
						||
<span class='line'>1573</span> </span><span class="WHIT">	</span><span class="NAME">various</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1574</span> </span><span class="WHIT">	</span><span class="COMM">/**
 | 
						||
<span class='line'>1575</span> 	 * 本變數之 properties。<br/>
 | 
						||
<span class='line'>1576</span> 	 * properties = { property: text contents of this property }
 | 
						||
<span class='line'>1577</span> 	 * 
 | 
						||
<span class='line'>1578</span> 	 * @inner
 | 
						||
<span class='line'>1579</span> 	 * @ignore
 | 
						||
<span class='line'>1580</span> 	 */</span><span class="WHIT">
 | 
						||
<span class='line'>1581</span> </span><span class="WHIT">	</span><span class="NAME">properties</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1582</span> </span><span class="WHIT">	</span><span class="COMM">/**
 | 
						||
<span class='line'>1583</span> 	 * 最後一次定義的變數名,用於之後若有變數需要繼承 namespace 時。
 | 
						||
<span class='line'>1584</span> 	 * 
 | 
						||
<span class='line'>1585</span> 	 * @inner
 | 
						||
<span class='line'>1586</span> 	 * @ignore
 | 
						||
<span class='line'>1587</span> 	 */</span><span class="WHIT">
 | 
						||
<span class='line'>1588</span> </span><span class="WHIT">	</span><span class="NAME">latest_name</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1589</span> </span><span class="WHIT">	</span><span class="COMM">/**
 | 
						||
<span class='line'>1590</span> 	 * 紀錄有意義的註解所在行號.
 | 
						||
<span class='line'>1591</span> 	 * 預防需要把註解之前的也讀進來。有 bug!
 | 
						||
<span class='line'>1592</span> 	 * 
 | 
						||
<span class='line'>1593</span> 	 * @inner
 | 
						||
<span class='line'>1594</span> 	 * @ignore
 | 
						||
<span class='line'>1595</span> 	 */</span><span class="WHIT">
 | 
						||
<span class='line'>1596</span> </span><span class="WHIT">	</span><span class="NAME">origin_index</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1597</span> </span><span class="WHIT">	</span><span class="NAME">new_line</span><span class="PUNC">=</span><span class="NAME">library_namespace.env.new_line</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1598</span> </span><span class="WHIT">	</span><span class="COMM">/**
 | 
						||
<span class='line'>1599</span> 	 * 將 jsdoc properties 轉換成 VSdoc(JScript IntelliSense in Visual Studio)
 | 
						||
<span class='line'>1600</span> 	 * 
 | 
						||
<span class='line'>1601</span> 	 * @inner
 | 
						||
<span class='line'>1602</span> 	 * @ignore
 | 
						||
<span class='line'>1603</span> 	 * @see
 | 
						||
<span class='line'>1604</span> 	 * http://weblogs.asp.net/bleroy/archive/2007/04/23/the-format-for-javascript-doc-comments.aspx,
 | 
						||
<span class='line'>1605</span> 	 * http://msdn.microsoft.com/zh-tw/library/bb385682.aspx,
 | 
						||
<span class='line'>1606</span> 	 * http://www.codeproject.com/Articles/60661/Visual-Studio-JavaScript-Intellisense-Revisited.aspx
 | 
						||
<span class='line'>1607</span> 	 */</span><span class="WHIT">
 | 
						||
<span class='line'>1608</span> </span><span class="WHIT">	</span><span class="NAME">jsdoc_to_vsdoc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1609</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">V</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t_p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">	</span><span class="WHIT">
 | 
						||
<span class='line'>1610</span> </span><span class="WHIT">			</span><span class="COMM">//CeL.log(n + ':\n' + properties[n]);</span><span class="WHIT">
 | 
						||
<span class='line'>1611</span> </span><span class="WHIT">			</span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT">
 | 
						||
<span class='line'>1612</span> </span><span class="WHIT">					</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/^[\s\n]+|[\s\n]+$/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1613</span> </span><span class="WHIT">					</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\r?\n\s+|\s+\r?\n/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1614</span> </span><span class="WHIT">					</span><span class="COMM">//.replace(/</g,'<')</span><span class="WHIT">
 | 
						||
<span class='line'>1615</span> </span><span class="WHIT">					</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1616</span> </span><span class="WHIT">			</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1617</span> 
 | 
						||
<span class='line'>1618</span> </span><span class="WHIT">			</span><span class="KEYW">switch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1619</span> 
 | 
						||
<span class='line'>1620</span> </span><span class="WHIT">			</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'description'</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1621</span> </span><span class="WHIT">			</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'summary'</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1622</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="REGX">/^[\s\n]*$/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1623</span> </span><span class="WHIT">					</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1624</span> </span><span class="WHIT">				</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'summary'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1625</span> </span><span class="WHIT">				</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1626</span> 
 | 
						||
<span class='line'>1627</span> </span><span class="WHIT">			</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'param'</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1628</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v.match</span><span class="PUNC">(</span><span class="REGX">/^({([a-zA-Z_\d.$\|\s]+)}\s*)?([a-zA-Z_\d$]+|\[([a-zA-Z_\d.$]+)\])\s*(.*?)$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1629</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\s+/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1630</span> </span><span class="WHIT">					</span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">5</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">' name="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" type="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" optional="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">!</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'"'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1631</span> 
 | 
						||
<span class='line'>1632</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/integer/i</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1633</span> </span><span class="WHIT">						</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">' integer="true"'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1634</span> </span><span class="WHIT">					</span><span class="COMM">//	from CeL.net.web</span><span class="WHIT">
 | 
						||
<span class='line'>1635</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/HTML([A-U][A-Za-z]{1,15})?Element/i</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1636</span> </span><span class="WHIT">						</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">' domElement="true"'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1637</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>1638</span> </span><span class="WHIT">					</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1639</span> </span><span class="WHIT">				</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1640</span> 
 | 
						||
<span class='line'>1641</span> </span><span class="WHIT">			</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'type'</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1642</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1643</span> 
 | 
						||
<span class='line'>1644</span> </span><span class="WHIT">			</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'return'</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1645</span> </span><span class="WHIT">				</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'s'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1646</span> </span><span class="WHIT">			</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'returns'</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1647</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v.match</span><span class="PUNC">(</span><span class="REGX">/^({([a-zA-Z_\d$.\|\s]+)})?(.*)$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1648</span> </span><span class="WHIT">					</span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/^[\s\n]+/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1649</span> </span><span class="WHIT">					</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\s+/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">properties.type</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1650</span> 
 | 
						||
<span class='line'>1651</span> </span><span class="WHIT">					</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">' type="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'"'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1652</span> 
 | 
						||
<span class='line'>1653</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/integer/i</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1654</span> </span><span class="WHIT">						</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">' integer="true"'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1655</span> </span><span class="WHIT">					</span><span class="COMM">//	from CeL.net.web</span><span class="WHIT">
 | 
						||
<span class='line'>1656</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/HTML([A-U][A-Za-z]{1,15})?Element/i</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1657</span> </span><span class="WHIT">						</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">' domElement="true"'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1658</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>1659</span> </span><span class="WHIT">					</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1660</span> </span><span class="WHIT">				</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1661</span> 
 | 
						||
<span class='line'>1662</span> </span><span class="WHIT">			</span><span class="KEYW">default</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1663</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1664</span> 
 | 
						||
<span class='line'>1665</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">v.indexOf</span><span class="PUNC">(</span><span class="NAME">new_line</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">a.indexOf</span><span class="PUNC">(</span><span class="NAME">new_line</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1666</span> </span><span class="WHIT">				</span><span class="NAME">p.push</span><span class="PUNC">(</span><span class="STRN">'<'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'</'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'>'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'/>'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1667</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1668</span> </span><span class="WHIT">				</span><span class="NAME">p.push</span><span class="PUNC">(</span><span class="STRN">'<'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1669</span> </span><span class="WHIT">				</span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">p.concat</span><span class="PUNC">(</span><span class="NAME">v.split</span><span class="PUNC">(</span><span class="NAME">new_line</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1670</span> </span><span class="WHIT">				</span><span class="NAME">p.push</span><span class="PUNC">(</span><span class="STRN">'</'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1671</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1672</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1673</span> 
 | 
						||
<span class='line'>1674</span> </span><span class="WHIT">		</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">properties</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1675</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Array</span><span class="PUNC">(</span><span class="NAME">V</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">properties</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1676</span> </span><span class="WHIT">				</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">V.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1677</span> </span><span class="WHIT">					</span><span class="NAME">t_p</span><span class="PUNC">(</span><span class="NAME">V</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1678</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>1679</span> </span><span class="WHIT">				</span><span class="NAME">t_p</span><span class="PUNC">(</span><span class="NAME">V</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1680</span> 
 | 
						||
<span class='line'>1681</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">p.length</span><span class="PUNC">></span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">p.join</span><span class="PUNC">(</span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'	///	'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT">
 | 
						||
<span class='line'>1682</span> </span><span class="WHIT">						</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">new_line</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1683</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1684</span> </span><span class="WHIT">	</span><span class="COMM">/**
 | 
						||
<span class='line'>1685</span> 	 * 從變數定義取得變數名。
 | 
						||
<span class='line'>1686</span> 	 * 
 | 
						||
<span class='line'>1687</span> 	 * @param {String} _
 | 
						||
<span class='line'>1688</span> 	 *            變數定義
 | 
						||
<span class='line'>1689</span> 	 * @inner
 | 
						||
<span class='line'>1690</span> 	 * @ignore
 | 
						||
<span class='line'>1691</span> 	 */</span><span class="WHIT">
 | 
						||
<span class='line'>1692</span> </span><span class="WHIT">	</span><span class="NAME">set_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">_</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1693</span> </span><span class="WHIT">		</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">properties.name</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1694</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">name</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1695</span> </span><span class="WHIT">			</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1696</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">origin_index</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1697</span> </span><span class="WHIT">			</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1698</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/[;{})]\s*$/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">code</span><span class="PUNC">[</span><span class="PUNC">--</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\/\/.*$/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1699</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name.join</span><span class="PUNC">(</span><span class="STRN">' '</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1700</span> </span><span class="WHIT">							</span><span class="COMM">// 除去註解後</span><span class="WHIT">
 | 
						||
<span class='line'>1701</span> </span><span class="WHIT">							</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\/\*(.*?)\*\//g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1702</span> </span><span class="WHIT">							</span><span class="COMM">// 已無註解的話</span><span class="WHIT">
 | 
						||
<span class='line'>1703</span> </span><span class="WHIT">							</span><span class="PUNC">.</span><span class="NAME">indexOf</span><span class="PUNC">(</span><span class="STRN">'*/'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1704</span> </span><span class="WHIT">						</span><span class="NAME">_</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name.replace</span><span class="PUNC">(</span><span class="REGX">/^\s*var(\s+|$)/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">_</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1705</span> </span><span class="WHIT">						</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1706</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>1707</span> </span><span class="WHIT">						</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1708</span> </span><span class="WHIT">				</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1709</span> </span><span class="WHIT">					</span><span class="NAME">name.unshift</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1710</span> 
 | 
						||
<span class='line'>1711</span> </span><span class="WHIT">			</span><span class="COMM">//if(!i):	Error!</span><span class="WHIT">
 | 
						||
<span class='line'>1712</span> </span><span class="WHIT">			</span><span class="COMM">//if(_.match(/var/)) library_namespace.warn(name+'\n'+_);</span><span class="WHIT">
 | 
						||
<span class='line'>1713</span> 
 | 
						||
<span class='line'>1714</span> </span><span class="WHIT">			</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">properties.memberOf</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT">
 | 
						||
<span class='line'>1715</span> </span><span class="WHIT">							</span><span class="PUNC">(</span><span class="NAME">_.replace</span><span class="PUNC">(</span><span class="REGX">/[\s\n]+/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">indexOf</span><span class="PUNC">(</span><span class="NAME">properties.memberOf</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT">
 | 
						||
<span class='line'>1716</span> </span><span class="WHIT">									</span><span class="NAME">properties.memberOf</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1717</span> </span><span class="WHIT">							</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">_</span><span class="WHIT"> </span><span class="COMM">/* .replace(/^(.+)\./,'') */</span><span class="WHIT">
 | 
						||
<span class='line'>1718</span> </span><span class="WHIT">					</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'property'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">properties</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT">
 | 
						||
<span class='line'>1719</span> </span><span class="WHIT">							</span><span class="NAME">latest_name</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">latest_name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.prototype.'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">_.replace</span><span class="PUNC">(</span><span class="REGX">/^(.+)\./</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT">
 | 
						||
<span class='line'>1720</span> </span><span class="WHIT">					</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">_</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1721</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1722</span> 
 | 
						||
<span class='line'>1723</span> </span><span class="WHIT">		</span><span class="COMM">// 除去 space</span><span class="WHIT">
 | 
						||
<span class='line'>1724</span> </span><span class="WHIT">		</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name.replace</span><span class="PUNC">(</span><span class="REGX">/[\s\n]+/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1725</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>1726</span> </span><span class="WHIT">	</span><span class="NAME">handle_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1727</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT">
 | 
						||
<span class='line'>1728</span> </span><span class="WHIT">		</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/^([a-zA-Z_$\d]+)\.[^.].+[^.]\.([a-zA-Z_$\d]+)$/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1729</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">library_namespace.Class</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.'</span><span class="WHIT">
 | 
						||
<span class='line'>1730</span> </span><span class="WHIT">				</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1731</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1732</span> 
 | 
						||
<span class='line'>1733</span> </span><span class="WHIT">	</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1734</span> </span><span class="WHIT">		</span><span class="COMM">//	一行一行判斷</span><span class="WHIT">
 | 
						||
<span class='line'>1735</span> </span><span class="WHIT">		</span><span class="COMM">//	TODO: 提升效率</span><span class="WHIT">
 | 
						||
<span class='line'>1736</span> </span><span class="WHIT">		</span><span class="NAME">line</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">code</span><span class="PUNC">[</span><span class="NAME">origin_index</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1737</span> 
 | 
						||
<span class='line'>1738</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/^\s*\/\*\*/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">line</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1739</span> </span><span class="WHIT">			</span><span class="COMM">//	處理 '/**' 之註解(這些是有意義的)</span><span class="WHIT">
 | 
						||
<span class='line'>1740</span> </span><span class="WHIT">			</span><span class="NAME">properties</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1741</span> </span><span class="WHIT">			</span><span class="COMM">//	都沒有 '@' 時,預設為 @description</span><span class="WHIT">
 | 
						||
<span class='line'>1742</span> </span><span class="WHIT">			</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'description'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1743</span> </span><span class="WHIT">			</span><span class="NAME">tmp_code</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1744</span> </span><span class="WHIT">			</span><span class="NAME">various</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1745</span> </span><span class="WHIT">			</span><span class="COMM">//library_namespace.log('' + line);</span><span class="WHIT">
 | 
						||
<span class='line'>1746</span> </span><span class="WHIT">			</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1747</span> </span><span class="WHIT">				</span><span class="COMM">//library_namespace.log('' + line);</span><span class="WHIT">
 | 
						||
<span class='line'>1748</span> </span><span class="WHIT">				</span><span class="NAME">tmp_code.push</span><span class="PUNC">(</span><span class="NAME">line</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1749</span> 
 | 
						||
<span class='line'>1750</span> </span><span class="WHIT">				</span><span class="COMM">//	判別</span><span class="WHIT">
 | 
						||
<span class='line'>1751</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">line.indexOf</span><span class="PUNC">(</span><span class="STRN">'*/'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">line.match</span><span class="PUNC">(</span><span class="REGX">/^\s+\*\s+@([_a-zA-Z\d\$.]+)(\s+([^\s].*)?\s*)?$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1752</span> </span><span class="WHIT">					</span><span class="COMM">//	設定 name = various</span><span class="WHIT">
 | 
						||
<span class='line'>1753</span> </span><span class="WHIT">					</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">various.join</span><span class="PUNC">(</span><span class="NAME">new_line</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1754</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">name</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">properties</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1755</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.is_Array</span><span class="PUNC">(</span><span class="NAME">properties</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1756</span> </span><span class="WHIT">							</span><span class="NAME">properties</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">push</span><span class="PUNC">(</span><span class="NAME">various</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1757</span> </span><span class="WHIT">						</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>1758</span> </span><span class="WHIT">							</span><span class="NAME">properties</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">properties</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1759</span> </span><span class="WHIT">					</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>1760</span> </span><span class="WHIT">						</span><span class="NAME">properties</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">various</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1761</span> 
 | 
						||
<span class='line'>1762</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">line.indexOf</span><span class="PUNC">(</span><span class="STRN">'*/'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1763</span> </span><span class="WHIT">						</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1764</span> 
 | 
						||
<span class='line'>1765</span> </span><span class="WHIT">					</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1766</span> 
 | 
						||
<span class='line'>1767</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>1768</span> </span><span class="WHIT">					</span><span class="NAME">various.push</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">line.match</span><span class="PUNC">(</span><span class="REGX">/^\s+\*\s+([^\s].+)$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">line.replace</span><span class="PUNC">(</span><span class="REGX">/^(.*)\/\*\*/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1769</span> 
 | 
						||
<span class='line'>1770</span> </span><span class="WHIT">				</span><span class="NAME">line</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">code</span><span class="PUNC">[</span><span class="PUNC">++</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1771</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1772</span> 
 | 
						||
<span class='line'>1773</span> </span><span class="WHIT">			</span><span class="COMM">//library_namespace.log('[' + i + ']' + '\n' + tmp_code.join('\n') + '\n' + line);</span><span class="WHIT">
 | 
						||
<span class='line'>1774</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">line.match</span><span class="PUNC">(</span><span class="REGX">/(.*?\*\/)/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1775</span> </span><span class="WHIT">				</span><span class="NAME">line</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">line.replace</span><span class="PUNC">(</span><span class="REGX">/(.*?)\*\//</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1776</span> </span><span class="WHIT">				</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT">
 | 
						||
<span class='line'>1777</span> </span><span class="WHIT">						</span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="REGX">/=\s*[^\s]|{/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">line</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">line.replace</span><span class="PUNC">(</span><span class="WHIT">
 | 
						||
<span class='line'>1778</span> </span><span class="WHIT">								</span><span class="REGX">/\s*\/\/[^\n]*/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="WHIT">
 | 
						||
<span class='line'>1779</span> </span><span class="WHIT">										</span><span class="REGX">/\/\*((.|\n)*?)\*\//g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1780</span> </span><span class="WHIT">					</span><span class="NAME">line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">code</span><span class="PUNC">[</span><span class="PUNC">++</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1781</span> 
 | 
						||
<span class='line'>1782</span> </span><span class="WHIT">				</span><span class="COMM">//	初始化函式名</span><span class="WHIT">
 | 
						||
<span class='line'>1783</span> </span><span class="WHIT">				</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1784</span> 
 | 
						||
<span class='line'>1785</span> </span><span class="WHIT">				</span><span class="COMM">/*
 | 
						||
<span class='line'>1786</span> 				* 註解處理完了,接下來是變數。先把整個定義區放到 line。
 | 
						||
<span class='line'>1787</span> 				* 這邊處理幾種定義法:
 | 
						||
<span class='line'>1788</span> 				* function name() {};
 | 
						||
<span class='line'>1789</span> 				* var name = function(){};
 | 
						||
<span class='line'>1790</span> 				* var name = new Function();
 | 
						||
<span class='line'>1791</span> 				* var name = 123;
 | 
						||
<span class='line'>1792</span> 				*/</span><span class="WHIT">
 | 
						||
<span class='line'>1793</span> </span><span class="WHIT">				</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="REGX">/^\s*function\s$/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">line</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="REGX">/[=;,]/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">line</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1794</span> </span><span class="WHIT">					</span><span class="NAME">line</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">code</span><span class="PUNC">[</span><span class="PUNC">++</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1795</span> 
 | 
						||
<span class='line'>1796</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">line.match</span><span class="PUNC">(</span><span class="REGX">/^\s*function\s+([_a-zA-Z\d\$.]*)\s*\((.*)/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1797</span> </span><span class="WHIT">					</span><span class="COMM">// function name() {};</span><span class="WHIT">
 | 
						||
<span class='line'>1798</span> </span><span class="WHIT">					</span><span class="NAME">set_name</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1799</span> </span><span class="WHIT">					</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1800</span> </span><span class="WHIT">					</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">various.indexOf</span><span class="PUNC">(</span><span class="STRN">')'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1801</span> </span><span class="WHIT">						</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">code</span><span class="PUNC">[</span><span class="PUNC">++</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1802</span> </span><span class="WHIT">					</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">various.match</span><span class="PUNC">(</span><span class="REGX">/^[^)]*/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1803</span> </span><span class="WHIT">					</span><span class="NAME">tmp_code.push</span><span class="PUNC">(</span><span class="NAME">handle_name</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'=function('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'){'</span><span class="WHIT">
 | 
						||
<span class='line'>1804</span> </span><span class="WHIT">									</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">jsdoc_to_vsdoc</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'};'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1805</span> 
 | 
						||
<span class='line'>1806</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">line</span><span class="WHIT">
 | 
						||
<span class='line'>1807</span> </span><span class="WHIT">						</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/^\s*(var\s+)?([_a-zA-Z\d\$.]+)\s*=\s*(.+)/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1808</span> </span><span class="WHIT">					</span><span class="NAME">set_name</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1809</span> </span><span class="WHIT">					</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1810</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/^\s*function(\s+[_a-zA-Z\d\$]+)?\s*\(/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">various</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1811</span> </span><span class="WHIT">						</span><span class="COMM">// var name = function(){};</span><span class="WHIT">
 | 
						||
<span class='line'>1812</span> </span><span class="WHIT">						</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">various.indexOf</span><span class="PUNC">(</span><span class="STRN">')'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1813</span> </span><span class="WHIT">							</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">code</span><span class="PUNC">[</span><span class="PUNC">++</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1814</span> </span><span class="WHIT">						</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">various.match</span><span class="PUNC">(</span><span class="REGX">/^[^)]+\)/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1815</span> </span><span class="WHIT">						</span><span class="NAME">tmp_code.push</span><span class="PUNC">(</span><span class="NAME">handle_name</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'{'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">jsdoc_to_vsdoc</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'};'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1816</span> 
 | 
						||
<span class='line'>1817</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/^\s*new\s+Function\s*\(/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">various</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1818</span> </span><span class="WHIT">						</span><span class="COMM">// var name = new Function();</span><span class="WHIT">
 | 
						||
<span class='line'>1819</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">various.match</span><span class="PUNC">(</span><span class="REGX">/^\s*new\s+Function\s*\(.+\)\s*;?\s*$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1820</span> </span><span class="WHIT">							</span><span class="COMM">//	TODO</span><span class="WHIT">
 | 
						||
<span class='line'>1821</span> </span><span class="WHIT">							</span><span class="NAME">tmp_code.push</span><span class="PUNC">(</span><span class="NAME">handle_name</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'=new Function("");'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1822</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>1823</span> </span><span class="WHIT">							</span><span class="NAME">tmp_code.push</span><span class="PUNC">(</span><span class="NAME">handle_name</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'=new Function();'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1824</span> 
 | 
						||
<span class='line'>1825</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1826</span> </span><span class="WHIT">						</span><span class="COMM">// var name = 123;</span><span class="WHIT">
 | 
						||
<span class='line'>1827</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">properties.type</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1828</span> </span><span class="WHIT">							</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/^['"]/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">various</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1829</span> </span><span class="WHIT">								</span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'String'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1830</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">various</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1831</span> </span><span class="WHIT">								</span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1832</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/^(true|false)([\s;,]|$)/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">various</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1833</span> </span><span class="WHIT">								</span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'bool'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1834</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">various.charAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'['</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1835</span> </span><span class="WHIT">								</span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'array'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1836</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">various.charAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'{'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1837</span> </span><span class="WHIT">								</span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1838</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">various.charAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1839</span> </span><span class="WHIT">								</span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'regexp'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1840</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/^regexp obj(ect)?$/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">properties.type</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1841</span> </span><span class="WHIT">								</span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'regexp'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1842</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1843</span> 
 | 
						||
<span class='line'>1844</span> </span><span class="WHIT">						</span><span class="COMM">//if (name === 'module_name');</span><span class="WHIT">
 | 
						||
<span class='line'>1845</span> 
 | 
						||
<span class='line'>1846</span> </span><span class="WHIT">						</span><span class="KEYW">switch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1847</span> </span><span class="WHIT">							</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1848</span> </span><span class="WHIT">								</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">various.replace</span><span class="PUNC">(</span><span class="REGX">/\s*[,;]*\s*$/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1849</span> </span><span class="WHIT">								</span><span class="COMM">//library_namespace.log('['+m+']');</span><span class="WHIT">
 | 
						||
<span class='line'>1850</span> </span><span class="WHIT">								</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/^'[^\\']*'$/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1851</span> </span><span class="WHIT">									</span><span class="PUNC">||</span><span class="WHIT"> </span><span class="REGX">/^"[^\\"]*"$/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1852</span> </span><span class="WHIT">									</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1853</span> </span><span class="WHIT">								</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1854</span> </span><span class="WHIT">									</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'="";	//	'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">various</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1855</span> </span><span class="WHIT">								</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1856</span> </span><span class="WHIT">								</span><span class="NAME">properties.type</span><span class="PUNC">=</span><span class="STRN">'String'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1857</span> </span><span class="WHIT">								</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1858</span> 
 | 
						||
<span class='line'>1859</span> </span><span class="WHIT">							</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'bool'</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1860</span> </span><span class="WHIT">							</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'boolean'</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1861</span> </span><span class="WHIT">								</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">various.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="WHIT">
 | 
						||
<span class='line'>1862</span> </span><span class="WHIT">									</span><span class="REGX">/^(true|false)([\s,;]|$)/i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1863</span> </span><span class="WHIT">									</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1864</span> </span><span class="WHIT">								</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1865</span> </span><span class="WHIT">									</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'=true;	//	'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">various</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1866</span> </span><span class="WHIT">								</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1867</span> </span><span class="WHIT">								</span><span class="NAME">properties.type</span><span class="PUNC">=</span><span class="STRN">'Boolean'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1868</span> </span><span class="WHIT">								</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1869</span> 
 | 
						||
<span class='line'>1870</span> </span><span class="WHIT">							</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1871</span> </span><span class="WHIT">								</span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'Number'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1872</span> </span><span class="WHIT">							</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'int'</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1873</span> </span><span class="WHIT">							</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'integer'</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1874</span> </span><span class="WHIT">								</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/int(eger)?/i</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">properties.type</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1875</span> </span><span class="WHIT">									</span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'Integer'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1876</span> 
 | 
						||
<span class='line'>1877</span> </span><span class="WHIT">								</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">various</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1878</span> </span><span class="WHIT">									</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1879</span> </span><span class="WHIT">								</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1880</span> </span><span class="WHIT">									</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'=0;	//	'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">various</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1881</span> </span><span class="WHIT">								</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1882</span> </span><span class="WHIT">								</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1883</span> 
 | 
						||
<span class='line'>1884</span> </span><span class="WHIT">							</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'array'</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1885</span> </span><span class="WHIT">								</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'[];'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1886</span> </span><span class="WHIT">								</span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'Array'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1887</span> </span><span class="WHIT">								</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1888</span> 
 | 
						||
<span class='line'>1889</span> </span><span class="WHIT">							</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1890</span> </span><span class="WHIT">								</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">various.charAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'{'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1891</span> </span><span class="WHIT">									</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1892</span> </span><span class="WHIT">										</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">various.lastIndexOf</span><span class="PUNC">(</span><span class="STRN">'}'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1893</span> </span><span class="WHIT">											</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">various.slice</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">various.lastIndexOf</span><span class="PUNC">(</span><span class="STRN">'}'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1894</span> </span><span class="WHIT">											</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m.lastIndexOf</span><span class="PUNC">(</span><span class="STRN">'/*'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT">
 | 
						||
<span class='line'>1895</span> </span><span class="WHIT">												</span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">m.lastIndexOf</span><span class="PUNC">(</span><span class="STRN">'/*'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT">
 | 
						||
<span class='line'>1896</span> </span><span class="WHIT">														</span><span class="PUNC">.</span><span class="NAME">lastIndexOf</span><span class="PUNC">(</span><span class="STRN">'*/'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1897</span> </span><span class="WHIT">												</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1898</span> </span><span class="WHIT">										</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1899</span> </span><span class="WHIT">										</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'\n'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">code</span><span class="PUNC">[</span><span class="PUNC">++</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1900</span> </span><span class="WHIT">									</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1901</span> </span><span class="WHIT">									</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">various</span><span class="WHIT">
 | 
						||
<span class='line'>1902</span> </span><span class="WHIT">										</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\s*\/\/[^\n]*/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1903</span> </span><span class="WHIT">										</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\/\*((.|\n)*?)\*\//g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1904</span> </span><span class="WHIT">										</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/}(.*)$/</span><span class="PUNC">,</span><span class="STRN">'}'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1905</span> </span><span class="WHIT">									</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">m.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1906</span> </span><span class="WHIT">										</span><span class="NAME">library_namespace.log</span><span class="PUNC">(</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'\n'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT">
 | 
						||
<span class='line'>1907</span> </span><span class="WHIT">									</span><span class="COMM">// + '\n'+v</span><span class="WHIT">
 | 
						||
<span class='line'>1908</span> </span><span class="WHIT">									</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1909</span> </span><span class="WHIT">									</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/^{([\s\n]*(('[^']*'|"[^"]*"|[_a-zA-Z\d\$.]+))[\s\n]*:('[^']*'|"[^"]*"|[\s\n\d+\-*\/()\^]+|true|false|null)+|,)*}/</span><span class="WHIT">
 | 
						||
<span class='line'>1910</span> </span><span class="WHIT">										</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1911</span> </span><span class="WHIT">										</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">various.replace</span><span class="PUNC">(</span><span class="REGX">/}(.*)$/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'}'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1912</span> </span><span class="WHIT">									</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>1913</span> </span><span class="WHIT">										</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'{};'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1914</span> </span><span class="WHIT">								</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>1915</span> </span><span class="WHIT">									</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'{};'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1916</span> </span><span class="WHIT">								</span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'Object'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1917</span> </span><span class="WHIT">								</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1918</span> 
 | 
						||
<span class='line'>1919</span> </span><span class="WHIT">							</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'regexp'</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1920</span> </span><span class="WHIT">								</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/^\/.+\/$/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">various</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1921</span> </span><span class="WHIT">									</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1922</span> </span><span class="WHIT">								</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1923</span> </span><span class="WHIT">									</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'/^regexp$/;	//	'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">various</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1924</span> </span><span class="WHIT">								</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1925</span> </span><span class="WHIT">								</span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'RegExp'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1926</span> </span><span class="WHIT">								</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1927</span> 
 | 
						||
<span class='line'>1928</span> </span><span class="WHIT">							</span><span class="KEYW">default</span><span class="PUNC">:</span><span class="WHIT">
 | 
						||
<span class='line'>1929</span> </span><span class="WHIT">								</span><span class="COMM">//	TODO: T1|T2|..</span><span class="WHIT">
 | 
						||
<span class='line'>1930</span> </span><span class="WHIT">								</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/^[_a-zA-Z\d\$.]/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">various</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1931</span> </span><span class="WHIT">									</span><span class="COMM">// reference</span><span class="WHIT">
 | 
						||
<span class='line'>1932</span> </span><span class="WHIT">									</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">';//'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1933</span> </span><span class="WHIT">										</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">various</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1934</span> </span><span class="WHIT">								</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1935</span> </span><span class="WHIT">									</span><span class="COMM">// unknown code</span><span class="WHIT">
 | 
						||
<span class='line'>1936</span> </span><span class="WHIT">									</span><span class="NAME">various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">';	//	'</span><span class="WHIT">
 | 
						||
<span class='line'>1937</span> </span><span class="WHIT">										</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">properties.type</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1938</span> </span><span class="WHIT">										</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">various</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1939</span> </span><span class="WHIT">								</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1940</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1941</span> 
 | 
						||
<span class='line'>1942</span> </span><span class="WHIT">						</span><span class="NAME">tmp_code.push</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="REGX">/^=/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">various</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'//'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">handle_name</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">various</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1943</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1944</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1945</span> 
 | 
						||
<span class='line'>1946</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="STRN">'ignore'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">properties</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="STRN">'inner'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">properties</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="STRN">'private'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">properties</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1947</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="STRN">'property'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">properties</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1948</span> </span><span class="WHIT">						</span><span class="COMM">//	定義最後一次變數名</span><span class="WHIT">
 | 
						||
<span class='line'>1949</span> </span><span class="WHIT">						</span><span class="NAME">latest_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1950</span> 
 | 
						||
<span class='line'>1951</span> </span><span class="WHIT">					</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name.split</span><span class="PUNC">(</span><span class="NAME">library_namespace.env.module_name_separator</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1952</span> 
 | 
						||
<span class='line'>1953</span> </span><span class="WHIT">					</span><span class="COMM">//	對可能的錯誤發出警告</span><span class="WHIT">
 | 
						||
<span class='line'>1954</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">library_namespace.Class</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="STRN">'deprecated'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">properties</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1955</span> </span><span class="WHIT">						</span><span class="NAME">library_namespace.warn</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">': line ['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">name.join</span><span class="PUNC">(</span><span class="NAME">library_namespace.env.module_name_separator</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'] NOT initial as '</span><span class="PUNC">+</span><span class="NAME">library_namespace.Class</span><span class="PUNC">+</span><span class="STRN">'\n'</span><span class="WHIT">
 | 
						||
<span class='line'>1956</span> </span><span class="WHIT">								</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">code.slice</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">6</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">6</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">join</span><span class="PUNC">(</span><span class="STRN">'\n'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1957</span> 
 | 
						||
<span class='line'>1958</span> </span><span class="WHIT">					</span><span class="COMM">//	將變數定義設置到 ns</span><span class="WHIT">
 | 
						||
<span class='line'>1959</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">np</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ns</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">nl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1960</span> </span><span class="WHIT">					</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">nl</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1961</span> </span><span class="WHIT">						</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">[</span><span class="NAME">m</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1962</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">np</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1963</span> </span><span class="WHIT">							</span><span class="COMM">// 初始設定 namespace</span><span class="WHIT">
 | 
						||
<span class='line'>1964</span> </span><span class="WHIT">							</span><span class="NAME">np</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1965</span> </span><span class="WHIT">								</span><span class="STRN">'this'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT">
 | 
						||
<span class='line'>1966</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1967</span> </span><span class="WHIT">						</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">library_namespace.is_Object</span><span class="PUNC">(</span><span class="NAME">np</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>1968</span> </span><span class="WHIT">							</span><span class="NAME">np</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1969</span> </span><span class="WHIT">								</span><span class="STRN">'this'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">np</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="WHIT">
 | 
						||
<span class='line'>1970</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1971</span> </span><span class="WHIT">						</span><span class="NAME">np</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">np</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1972</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1973</span> 
 | 
						||
<span class='line'>1974</span> </span><span class="WHIT">					</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">[</span><span class="NAME">nl</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1975</span> </span><span class="WHIT">					</span><span class="COMM">//if (n in np) library_namespace.log('get_various_from_code: get duplicate various: [' + name.join(library_namespace.env.module_name_separator) + ']');</span><span class="WHIT">
 | 
						||
<span class='line'>1976</span> 
 | 
						||
<span class='line'>1977</span> </span><span class="WHIT">					</span><span class="NAME">np</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tmp_code.join</span><span class="PUNC">(</span><span class="NAME">new_line</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1978</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1979</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1980</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1981</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 | 
						||
<span class='line'>1982</span> 
 | 
						||
<span class='line'>1983</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">ns</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1984</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>1985</span> 
 | 
						||
<span class='line'>1986</span> 
 | 
						||
<span class='line'>1987</span> </span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'>1988</span> </span><span class="PUNC">.</span><span class="WHIT">
 | 
						||
<span class='line'>1989</span> </span><span class="COMM">/**
 | 
						||
<span class='line'>1990</span> * 把 get_various_from_code 生成的 namespace 轉成 code
 | 
						||
<span class='line'>1991</span> * @param	{Object} ns	root namespace
 | 
						||
<span class='line'>1992</span> * @param	{String} [prefix]	(TODO) prefix of root namespace
 | 
						||
<span class='line'>1993</span> * @param	{Array}	[code_array]	inner use, please don't specify this value.
 | 
						||
<span class='line'>1994</span> * @return	{String}	code
 | 
						||
<span class='line'>1995</span> * @since	2009/12/20 14:51:52
 | 
						||
<span class='line'>1996</span> * @_memberOf	_module_
 | 
						||
<span class='line'>1997</span> */</span><span class="WHIT">
 | 
						||
<span class='line'>1998</span> </span><span class="NAME">get_code_from_generated_various</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">ns</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">prefix</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">code_array</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>1999</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.get_code_from_generated_various</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">return_text</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>2000</span> 
 | 
						||
<span class='line'>2001</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">code_array</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>2002</span> </span><span class="WHIT">		</span><span class="NAME">code_array</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>2003</span> </span><span class="WHIT">		</span><span class="NAME">return_text</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>2004</span> 
 | 
						||
<span class='line'>2005</span> </span><span class="WHIT">	</span><span class="COMM">//	先處理 'this'</span><span class="WHIT">
 | 
						||
<span class='line'>2006</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">prefix</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>2007</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="REGX">/\.prototype$/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">prefix</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>2008</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ns</span><span class="PUNC">[</span><span class="STRN">'this'</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
 | 
						||
<span class='line'>2009</span> </span><span class="WHIT">				</span><span class="NAME">code_array.push</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>2010</span> </span><span class="WHIT">				</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">ns</span><span class="PUNC">[</span><span class="STRN">'this'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>2011</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>2012</span> </span><span class="WHIT">				</span><span class="NAME">code_array.push</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>2013</span> </span><span class="WHIT">						</span><span class="STRN">'//	null constructor for ['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">prefix</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']'</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>2014</span> </span><span class="WHIT">						</span><span class="NAME">prefix</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'=function(){};'</span><span class="PUNC">,</span><span class="WHIT">
 | 
						||
<span class='line'>2015</span> </span><span class="WHIT">						</span><span class="NAME">prefix</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.prototype={};'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>2016</span> </span><span class="WHIT">		</span><span class="NAME">prefix</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'.'</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>2017</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>2018</span> </span><span class="WHIT">		</span><span class="NAME">prefix</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>2019</span> 
 | 
						||
<span class='line'>2020</span> 
 | 
						||
<span class='line'>2021</span> </span><span class="WHIT">	</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ns</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>2022</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">ns</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>2023</span> </span><span class="WHIT">			</span><span class="NAME">code_array.push</span><span class="PUNC">(</span><span class="NAME">ns</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>2024</span> </span><span class="WHIT">		</span><span class="KEYW">else</span><span class="WHIT">
 | 
						||
<span class='line'>2025</span> </span><span class="WHIT">			</span><span class="NAME">_s</span><span class="PUNC">(</span><span class="NAME">ns</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">prefix</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">code_array</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>2026</span> 
 | 
						||
<span class='line'>2027</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">return_text</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT">
 | 
						||
<span class='line'>2028</span> </span><span class="WHIT">			</span><span class="NAME">code_array.join</span><span class="PUNC">(</span><span class="NAME">library_namespace.env.new_line</span><span class="PUNC">)</span><span class="WHIT">
 | 
						||
<span class='line'>2029</span> </span><span class="WHIT">					</span><span class="COMM">//.replace(/[\r\n]+/g,library_namespace.env.new_line)</span><span class="WHIT">
 | 
						||
<span class='line'>2030</span> </span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">code_array</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>2031</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>2032</span> 
 | 
						||
<span class='line'>2033</span> 
 | 
						||
<span class='line'>2034</span> 
 | 
						||
<span class='line'>2035</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
 | 
						||
<span class='line'>2036</span> </span><span class="WHIT">	</span><span class="NAME">CeL.code.reorganize</span><span class="WHIT">
 | 
						||
<span class='line'>2037</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>2038</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>2039</span> 
 | 
						||
<span class='line'>2040</span> </span><span class="COMM">//===================================================</span><span class="WHIT">
 | 
						||
<span class='line'>2041</span> 
 | 
						||
<span class='line'>2042</span> </span><span class="NAME">CeL.setup_module</span><span class="PUNC">(</span><span class="NAME">module_name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">code_for_including</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>2043</span> 
 | 
						||
<span class='line'>2044</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 | 
						||
<span class='line'>2045</span> </span></pre></body></html> |