
    eCi                     n    d dl Z ddlmZmZ ddlmZ dZdZd Zd Zd	 Z	d
 Z
d Zd Zd Zd Zd Zd ZdS )    N   )sharedutils)settingsz]/**
 * @license
 * Copyright 2010 The Emscripten Authors
 * SPDX-License-Identifier: MIT
 */
zz\/\*\*?(\s*\*?\s*@license)?(\s*\*?\s*Copyright \d+ The Emscripten Authors\s*\*?\s*SPDX-License-Identifier: MIT)+\s*\*\/\s*c                 $   t          j                                        d          j        }t	          j        ||           |                     d|           t          j        sd S t          j                                        d          j        }t          j                                        d          j        }t	          j        |d           t	          j        |d           |                     d|           | 	                    |           d S )Nz.jsr   a  
    // All the pre-js content up to here must remain later on, we need to run
    // it.
    if ((typeof ENVIRONMENT_IS_WASM_WORKER != 'undefined' && ENVIRONMENT_IS_WASM_WORKER) || (typeof ENVIRONMENT_IS_PTHREAD != 'undefined' && ENVIRONMENT_IS_PTHREAD) || (typeof ENVIRONMENT_IS_AUDIO_WORKLET != 'undefined' && ENVIRONMENT_IS_AUDIO_WORKLET)) Module['preRun'] = [];
    var necessaryPreJSTasks = Module['preRun'].slice();
  a\  
    if (!Module['preRun']) throw 'Module.preRun should exist because file support used it; did a pre-js delete it?';
    necessaryPreJSTasks.forEach((task) => {
      if (Module['preRun'].indexOf(task) < 0) throw 'All preRun tasks that exist before user pre-js code should remain after; did you replace Module or modify Module.preRun?';
    });
  r   )
r   get_temp_filesgetnamer   
write_fileinsertr   
ASSERTIONSappend)pre_js_listfiles_pre_jsfilenamepreposts        @/home/ngoprek/emsdk/upstream/emscripten/tools/js_manipulation.pyadd_files_pre_jsr      s   "$$((//4(8\***Q!!!		 
F
 	##E**/#			 	 	$	$U	+	+	0$3     4     QT    c                     t          j        |           }t          j        t          d|          }t
          j        r
t          |z   }||k    rt          j        | |           d S d S )N )	r   	read_fileresubemscripten_license_regexr   EMIT_EMSCRIPTEN_LICENSEemscripten_licenser   )	js_targetjsprocessed_jss      r   handle_licenser"   =   sf    y!!"0"b99,% 5%4LR	Y----- r   c                     |                      dd                               dd                               dd          } | S )N\/'z\'"z\")replace)ss    r   escape_for_js_stringr*   I   s:    iic""3..66sEBB!	
(r   c                 "   t           j        r| S | d         g}|d         dk    rd|d<   | dd          D ]H}|dk    r|                    |           |                    d           |                    d           Id                    |          S )Nr   jir   r   )r   WASM_BIGINTr   join)siglegalr)   s      r   legalize_sigr2   N   s     Jq6(% 1X__E!Hqrr7  aCxxll1ooooll3ll3	r   c                 D    t           j        rdS | t          |           k    S )NT)r   r.   r2   )r0   s    r   is_legal_sigr4   a   s%     4	S!!	!!r   c                 R    |                      dd                                          S )N$_)r(   isidentifier)r
   s    r   r8   r8   h   s"    	c3			,	,	.	..r   c                 b   t           j        rt          |          }d|d          d|d<   t           j        st	          |           s?d                    |          }t           j        st           j        r	d| d|dS d| d|dS d                    |d	d                    }d
|d          d| dS )NNumber(r   ),z
dynCalls['z'](dynCall_(r   zgetWasmTableEntry(z)()r   MEMORY64listDYNCALLSr4   r/   MAIN_MODULESIDE_MODULE)r0   args	call_argss      r   make_dynCallrF   m   s     #::D"Q"""DG  
8l3// 
888D>>D 0x3 0 &)SS$$$//	0
  #ssDDD))abb""I7Q7797777r   c                 P   t          |           }dgd t          dt          |                    D             z   }| d         dk    rdnd}|d         dk    rd	nd}|t          | |          d
}t          j        rd}nd}d| dd                    |          d|d|d|d}|S )Nindexc                 2    g | ]}d t          |          z   S )a)str.0r-   s     r   
<listcomp>zmake_invoke.<locals>.<listcomp>   s"    EEEqcCFFlEEEr   r   r   vzreturn r   r,   z
    return 0n;;z*if (!(e instanceof EmscriptenEH)) throw e;zif (e !== e+0) throw e;zfunction invoke_r>   r<   z() {
  var sp = stackSave();
  try {
    z*
  } catch(e) {
    stackRestore(sp);
    z
    _setThrew(1, 0);z
  }
})r2   rangelenrF   r   EXCEPTION_STACK_TRACESr/   )r0   	legal_sigrD   retexceptional_retbodymaybe_rethrows          r   make_invokerY      s    3)
EEE!S^^,D,DEEE	E$Vs]]		# +4A,#*=*=&&2/Cc40000	1$$ . AMM
 .M 	SXXd^^^^TTT===///
	C# 
*r   c                     d|                                  v sJ t          |           dz
  }d t          |          D             }|                                }t	          | dd                    D ]B\  }}|dk    rd||          d||<   |dk    rd||          d||          d||<   :|d	k    sJ Cd
                    |          }d
                    |          }d| d}| d         dk    rd| d}d|  d| d| dS )Npr   c                     g | ]}d |z  S )a%d rL   s     r   rN   z'make_wasm64_wrapper.<locals>.<listcomp>   s    	+	+	+%!)	+	+	+r   zBigInt(r;   Pz ? z : 0)r7   z, zf(r   r:     var makeWrapper_ = (f) => (z) => z;
)lowerrR   rQ   copy	enumerater/   )	r0   n_argsrD   args_convertedr-   arg_typeargs_inargs_outresults	            r   make_wasm64_wrapperrk      sL   							s88a<&	+	+U6]]	+	+	+$99;;.s122w''  ka38N1$5888nQ	SRN1$5RR.:KRRRnQ_____IIdOO'YY~&&(&Vs]] v   F 
Hc	G	Gg	G	GF	G	G	GGr   c                     | d         dk    sJ t          |           dz
  }d                    d t          |          D                       }d|  d| d| d	S )
Nr   r[   r   r<   c              3       K   | ]	}d |z  V  
dS )r]   Nr^   rL   s     r   	<genexpr>z.make_unsign_pointer_wrapper.<locals>.<genexpr>   s&      33%!)333333r   r`   ra   z) => f(z	) >>> 0;
)rR   r/   rQ   )r0   re   rD   s      r   make_unsign_pointer_wrapperro      si    	Q3s88a<&	33U6]]333	3	3$	Kc	K	Kd	K	K4	K	K	KKr   )r   r   r   r   r   r   r   r   r"   r*   r2   r4   r8   rF   rY   rk   ro   r^   r   r   <module>rp      s    
			               " Y   <. . .  
  &" " "/ / /
8 8 8&     FH H H4L L L L Lr   