@@ -182,7 +182,264 @@ public static Interpreter.State initState(IRStmt s) {
TreeMap.treeMap(Ord.hashEqualsOrd(),
P.p(window_binding_Addr, window_Addr)),
TreeMap.treeMap(Ord.hashEqualsOrd(),
P.p(Dummy_Addr, Utils.createObj(TreeMap.empty(Ord.hashEqualsOrd()))))); // TODO
P.p(window_Addr, window_Obj),
P.p(decodeURI_Addr, decodeURI_Obj),
P.p(decodeURIComponent_Addr, decodeURIComponent_Obj),
P.p(encodeURI_Addr, encodeURI_Obj),
P.p(encodeURIComponent_Addr, encodeURIComponent_Obj),
P.p(escape_Addr, escape_Obj),
P.p(isFinite_Addr, isFinite_Obj),
P.p(isNaN_Addr, isNaN_Obj),
P.p(parseFloat_Addr, parseFloat_Obj),
P.p(parseInt_Addr, parseInt_Obj),
P.p(unescape_Addr, unescape_Obj),
P.p(Array_Addr, Array_Obj),
P.p(Boolean_Addr, Boolean_Obj),
P.p(Date_Addr, Date_Obj),
P.p(Error_Addr, Error_Obj),
P.p(Function_Addr, Function_Obj),
P.p(Function_prototype_Addr, Function_prototype_Obj),
P.p(Function_prototype_apply_Addr, Function_prototype_apply_Obj),
P.p(Function_prototype_call_Addr, Function_prototype_call_Obj),
P.p(Function_prototype_toString_Addr, Function_prototype_toString_Obj),
P.p(JSON_Addr, JSON_Obj),
P.p(Math_Addr, Math_Obj),
P.p(Number_Addr, Number_Obj),
P.p(RegExp_Addr, RegExp_Obj),
P.p(String_Addr, String_Obj),
P.p(Object_Addr, Object_Obj),
P.p(Object_create_Addr, Object_create_Obj),
P.p(Object_defineProperties_Addr, Object_defineProperties_Obj),
P.p(Object_defineProperty_Addr, Object_defineProperty_Obj),
P.p(Object_freeze_Addr, Object_freeze_Obj),
P.p(Object_getOwnPropertyDescriptor_Addr, Object_getOwnPropertyDescriptor_Obj),
P.p(Object_getOwnPropertyNames_Addr, Object_getOwnPropertyNames_Obj),
P.p(Object_getPrototypeOf_Addr, Object_getPrototypeOf_Obj),
P.p(Object_isExtensible_Addr, Object_isExtensible_Obj),
P.p(Object_isFrozen_Addr, Object_isFrozen_Obj),
P.p(Object_isSealed_Addr, Object_isSealed_Obj),
P.p(Object_keys_Addr, Object_keys_Obj),
P.p(Object_preventExtensions_Addr, Object_preventExtensions_Obj),
P.p(Object_seal_Addr, Object_seal_Obj),
P.p(Object_prototype_Addr, Object_prototype_Obj),
P.p(Object_prototype_valueOf_Addr, Object_prototype_valueOf_Obj),
P.p(Object_prototype_toString_Addr, Object_prototype_toString_Obj),
P.p(Object_prototype_isPrototypeOf_Addr, Object_prototype_isPrototypeOf_Obj),
P.p(Object_prototype_propertyIsEnumerable_Addr, Object_prototype_propertyIsEnumerable_Obj),
P.p(Object_prototype_hasOwnProperty_Addr, Object_prototype_hasOwnProperty_Obj),
P.p(Object_prototype_toLocaleString_Addr, Object_prototype_toLocaleString_Obj),
P.p(Array_prototype_Addr, Array_prototype_Obj),
P.p(Array_isArray_Addr, Array_isArray_Obj),
P.p(Array_prototype_concat_Addr, Array_prototype_concat_Obj),
P.p(Array_prototype_every_Addr, Array_prototype_every_Obj),
P.p(Array_prototype_filter_Addr, Array_prototype_filter_Obj),
P.p(Array_prototype_forEach_Addr, Array_prototype_forEach_Obj),
P.p(Array_prototype_indexOf_Addr, Array_prototype_indexOf_Obj),
P.p(Array_prototype_join_Addr, Array_prototype_join_Obj),
P.p(Array_prototype_lastIndexOf_Addr, Array_prototype_lastIndexOf_Obj),
P.p(Array_prototype_map_Addr, Array_prototype_map_Obj),
P.p(Array_prototype_pop_Addr, Array_prototype_pop_Obj),
P.p(Array_prototype_push_Addr, Array_prototype_push_Obj),
P.p(Array_prototype_reduce_Addr, Array_prototype_reduce_Obj),
P.p(Array_prototype_reduceRight_Addr, Array_prototype_reduceRight_Obj),
P.p(Array_prototype_reverse_Addr, Array_prototype_reverse_Obj),
P.p(Array_prototype_shift_Addr, Array_prototype_shift_Obj),
P.p(Array_prototype_slice_Addr, Array_prototype_slice_Obj),
P.p(Array_prototype_some_Addr, Array_prototype_some_Obj),
P.p(Array_prototype_sort_Addr, Array_prototype_sort_Obj),
P.p(Array_prototype_splice_Addr, Array_prototype_splice_Obj),
P.p(Array_prototype_toLocaleString_Addr, Array_prototype_toLocaleString_Obj),
P.p(Array_prototype_toString_Addr, Array_prototype_toString_Obj),
P.p(Array_prototype_unshift_Addr, Array_prototype_unshift_Obj),
P.p(Math_abs_Addr, Math_abs_Obj),
P.p(Math_acos_Addr, Math_acos_Obj),
P.p(Math_asin_Addr, Math_asin_Obj),
P.p(Math_atan_Addr, Math_atan_Obj),
P.p(Math_atan2_Addr, Math_atan2_Obj),
P.p(Math_ceil_Addr, Math_ceil_Obj),
P.p(Math_cos_Addr, Math_cos_Obj),
P.p(Math_exp_Addr, Math_exp_Obj),
P.p(Math_floor_Addr, Math_floor_Obj),
P.p(Math_log_Addr, Math_log_Obj),
P.p(Math_max_Addr, Math_max_Obj),
P.p(Math_min_Addr, Math_min_Obj),
P.p(Math_pow_Addr, Math_pow_Obj),
P.p(Math_random_Addr, Math_random_Obj),
P.p(Math_round_Addr, Math_round_Obj),
P.p(Math_sin_Addr, Math_sin_Obj),
P.p(Math_sqrt_Addr, Math_sqrt_Obj),
P.p(Math_tan_Addr, Math_tan_Obj),
P.p(Function_prototype_Addr, Function_prototype_Obj),
P.p(Number_prototype_Addr, Number_prototype_Obj),
P.p(Number_prototype_toString_Addr, Number_prototype_toString_Obj),
P.p(Number_prototype_toLocaleString_Addr, Number_prototype_toLocaleString_Obj),
P.p(Number_prototype_valueOf_Addr, Number_prototype_valueOf_Obj),
P.p(Number_prototype_toFixed_Addr, Number_prototype_toFixed_Obj),
P.p(Number_prototype_toExponential_Addr, Number_prototype_toExponential_Obj),
P.p(Number_prototype_toPrecision_Addr, Number_prototype_toPrecision_Obj),
P.p(String_prototype_Addr, String_prototype_Obj),
P.p(String_fromCharCode_Addr, String_fromCharCode_Obj),
P.p(String_prototype_charAt_Addr, String_prototype_charAt_Obj),
P.p(String_prototype_charCodeAt_Addr, String_prototype_charCodeAt_Obj),
P.p(String_prototype_concat_Addr, String_prototype_concat_Obj),
P.p(String_prototype_indexOf_Addr, String_prototype_indexOf_Obj),
P.p(String_prototype_lastIndexOf_Addr, String_prototype_lastIndexOf_Obj),
P.p(String_prototype_localeCompare_Addr, String_prototype_localeCompare_Obj),
P.p(String_prototype_match_Addr, String_prototype_match_Obj),
P.p(String_prototype_replace_Addr, String_prototype_replace_Obj),
P.p(String_prototype_search_Addr, String_prototype_search_Obj),
P.p(String_prototype_slice_Addr, String_prototype_slice_Obj),
P.p(String_prototype_split_Addr, String_prototype_split_Obj),
P.p(String_prototype_substr_Addr, String_prototype_substr_Obj),
P.p(String_prototype_substring_Addr, String_prototype_substring_Obj),
P.p(String_prototype_toLocaleLowerCase_Addr, String_prototype_toLocaleLowerCase_Obj),
P.p(String_prototype_toLocaleUpperCase_Addr, String_prototype_toLocaleUpperCase_Obj),
P.p(String_prototype_toLowerCase_Addr, String_prototype_toLowerCase_Obj),
P.p(String_prototype_toString_Addr, String_prototype_toString_Obj),
P.p(String_prototype_toUpperCase_Addr, String_prototype_toUpperCase_Obj),
P.p(String_prototype_trim_Addr, String_prototype_trim_Obj),
P.p(String_prototype_valueOf_Addr, String_prototype_valueOf_Obj),
P.p(Boolean_prototype_Addr, Boolean_prototype_Obj),
P.p(Boolean_prototype_toString_Addr, Boolean_prototype_toString_Obj),
P.p(Boolean_prototype_valueOf_Addr, Boolean_prototype_valueOf_Obj),
P.p(Error_prototype_Addr, Error_prototype_Obj),
P.p(Error_prototype_toString_Addr, Error_prototype_toString_Obj),
P.p(JSON_parse_Addr, JSON_parse_Obj),
P.p(JSON_stringify_Addr, JSON_stringify_Obj),
P.p(Date_now_Addr, Date_now_Obj),
P.p(Date_parse_Addr, Date_parse_Obj),
P.p(Date_prototype_Addr, Date_prototype_Obj),
P.p(RegExp_prototype_Addr, RegExp_prototype_Obj),
P.p(Arguments_Addr, Arguments_Obj),P.p(window_Addr, window_Obj),
P.p(decodeURI_Addr, decodeURI_Obj),
P.p(decodeURIComponent_Addr, decodeURIComponent_Obj),
P.p(encodeURI_Addr, encodeURI_Obj),
P.p(encodeURIComponent_Addr, encodeURIComponent_Obj),
P.p(escape_Addr, escape_Obj),
P.p(isFinite_Addr, isFinite_Obj),
P.p(isNaN_Addr, isNaN_Obj),
P.p(parseFloat_Addr, parseFloat_Obj),
P.p(parseInt_Addr, parseInt_Obj),
P.p(unescape_Addr, unescape_Obj),
P.p(Array_Addr, Array_Obj),
P.p(Boolean_Addr, Boolean_Obj),
P.p(Date_Addr, Date_Obj),
P.p(Error_Addr, Error_Obj),
P.p(Function_Addr, Function_Obj),
P.p(Function_prototype_Addr, Function_prototype_Obj),
P.p(Function_prototype_apply_Addr, Function_prototype_apply_Obj),
P.p(Function_prototype_call_Addr, Function_prototype_call_Obj),
P.p(Function_prototype_toString_Addr, Function_prototype_toString_Obj),
P.p(JSON_Addr, JSON_Obj),
P.p(Math_Addr, Math_Obj),
P.p(Number_Addr, Number_Obj),
P.p(RegExp_Addr, RegExp_Obj),
P.p(String_Addr, String_Obj),
P.p(Object_Addr, Object_Obj),
P.p(Object_create_Addr, Object_create_Obj),
P.p(Object_defineProperties_Addr, Object_defineProperties_Obj),
P.p(Object_defineProperty_Addr, Object_defineProperty_Obj),
P.p(Object_freeze_Addr, Object_freeze_Obj),
P.p(Object_getOwnPropertyDescriptor_Addr, Object_getOwnPropertyDescriptor_Obj),
P.p(Object_getOwnPropertyNames_Addr, Object_getOwnPropertyNames_Obj),
P.p(Object_getPrototypeOf_Addr, Object_getPrototypeOf_Obj),
P.p(Object_isExtensible_Addr, Object_isExtensible_Obj),
P.p(Object_isFrozen_Addr, Object_isFrozen_Obj),
P.p(Object_isSealed_Addr, Object_isSealed_Obj),
P.p(Object_keys_Addr, Object_keys_Obj),
P.p(Object_preventExtensions_Addr, Object_preventExtensions_Obj),
P.p(Object_seal_Addr, Object_seal_Obj),
P.p(Object_prototype_Addr, Object_prototype_Obj),
P.p(Object_prototype_valueOf_Addr, Object_prototype_valueOf_Obj),
P.p(Object_prototype_toString_Addr, Object_prototype_toString_Obj),
P.p(Object_prototype_isPrototypeOf_Addr, Object_prototype_isPrototypeOf_Obj),
P.p(Object_prototype_propertyIsEnumerable_Addr, Object_prototype_propertyIsEnumerable_Obj),
P.p(Object_prototype_hasOwnProperty_Addr, Object_prototype_hasOwnProperty_Obj),
P.p(Object_prototype_toLocaleString_Addr, Object_prototype_toLocaleString_Obj),
P.p(Array_prototype_Addr, Array_prototype_Obj),
P.p(Array_isArray_Addr, Array_isArray_Obj),
P.p(Array_prototype_concat_Addr, Array_prototype_concat_Obj),
P.p(Array_prototype_every_Addr, Array_prototype_every_Obj),
P.p(Array_prototype_filter_Addr, Array_prototype_filter_Obj),
P.p(Array_prototype_forEach_Addr, Array_prototype_forEach_Obj),
P.p(Array_prototype_indexOf_Addr, Array_prototype_indexOf_Obj),
P.p(Array_prototype_join_Addr, Array_prototype_join_Obj),
P.p(Array_prototype_lastIndexOf_Addr, Array_prototype_lastIndexOf_Obj),
P.p(Array_prototype_map_Addr, Array_prototype_map_Obj),
P.p(Array_prototype_pop_Addr, Array_prototype_pop_Obj),
P.p(Array_prototype_push_Addr, Array_prototype_push_Obj),
P.p(Array_prototype_reduce_Addr, Array_prototype_reduce_Obj),
P.p(Array_prototype_reduceRight_Addr, Array_prototype_reduceRight_Obj),
P.p(Array_prototype_reverse_Addr, Array_prototype_reverse_Obj),
P.p(Array_prototype_shift_Addr, Array_prototype_shift_Obj),
P.p(Array_prototype_slice_Addr, Array_prototype_slice_Obj),
P.p(Array_prototype_some_Addr, Array_prototype_some_Obj),
P.p(Array_prototype_sort_Addr, Array_prototype_sort_Obj),
P.p(Array_prototype_splice_Addr, Array_prototype_splice_Obj),
P.p(Array_prototype_toLocaleString_Addr, Array_prototype_toLocaleString_Obj),
P.p(Array_prototype_toString_Addr, Array_prototype_toString_Obj),
P.p(Array_prototype_unshift_Addr, Array_prototype_unshift_Obj),
P.p(Math_abs_Addr, Math_abs_Obj),
P.p(Math_acos_Addr, Math_acos_Obj),
P.p(Math_asin_Addr, Math_asin_Obj),
P.p(Math_atan_Addr, Math_atan_Obj),
P.p(Math_atan2_Addr, Math_atan2_Obj),
P.p(Math_ceil_Addr, Math_ceil_Obj),
P.p(Math_cos_Addr, Math_cos_Obj),
P.p(Math_exp_Addr, Math_exp_Obj),
P.p(Math_floor_Addr, Math_floor_Obj),
P.p(Math_log_Addr, Math_log_Obj),
P.p(Math_max_Addr, Math_max_Obj),
P.p(Math_min_Addr, Math_min_Obj),
P.p(Math_pow_Addr, Math_pow_Obj),
P.p(Math_random_Addr, Math_random_Obj),
P.p(Math_round_Addr, Math_round_Obj),
P.p(Math_sin_Addr, Math_sin_Obj),
P.p(Math_sqrt_Addr, Math_sqrt_Obj),
P.p(Math_tan_Addr, Math_tan_Obj),
P.p(Function_prototype_Addr, Function_prototype_Obj),
P.p(Number_prototype_Addr, Number_prototype_Obj),
P.p(Number_prototype_toString_Addr, Number_prototype_toString_Obj),
P.p(Number_prototype_toLocaleString_Addr, Number_prototype_toLocaleString_Obj),
P.p(Number_prototype_valueOf_Addr, Number_prototype_valueOf_Obj),
P.p(Number_prototype_toFixed_Addr, Number_prototype_toFixed_Obj),
P.p(Number_prototype_toExponential_Addr, Number_prototype_toExponential_Obj),
P.p(Number_prototype_toPrecision_Addr, Number_prototype_toPrecision_Obj),
P.p(String_prototype_Addr, String_prototype_Obj),
P.p(String_fromCharCode_Addr, String_fromCharCode_Obj),
P.p(String_prototype_charAt_Addr, String_prototype_charAt_Obj),
P.p(String_prototype_charCodeAt_Addr, String_prototype_charCodeAt_Obj),
P.p(String_prototype_concat_Addr, String_prototype_concat_Obj),
P.p(String_prototype_indexOf_Addr, String_prototype_indexOf_Obj),
P.p(String_prototype_lastIndexOf_Addr, String_prototype_lastIndexOf_Obj),
P.p(String_prototype_localeCompare_Addr, String_prototype_localeCompare_Obj),
P.p(String_prototype_match_Addr, String_prototype_match_Obj),
P.p(String_prototype_replace_Addr, String_prototype_replace_Obj),
P.p(String_prototype_search_Addr, String_prototype_search_Obj),
P.p(String_prototype_slice_Addr, String_prototype_slice_Obj),
P.p(String_prototype_split_Addr, String_prototype_split_Obj),
P.p(String_prototype_substr_Addr, String_prototype_substr_Obj),
P.p(String_prototype_substring_Addr, String_prototype_substring_Obj),
P.p(String_prototype_toLocaleLowerCase_Addr, String_prototype_toLocaleLowerCase_Obj),
P.p(String_prototype_toLocaleUpperCase_Addr, String_prototype_toLocaleUpperCase_Obj),
P.p(String_prototype_toLowerCase_Addr, String_prototype_toLowerCase_Obj),
P.p(String_prototype_toString_Addr, String_prototype_toString_Obj),
P.p(String_prototype_toUpperCase_Addr, String_prototype_toUpperCase_Obj),
P.p(String_prototype_trim_Addr, String_prototype_trim_Obj),
P.p(String_prototype_valueOf_Addr, String_prototype_valueOf_Obj),
P.p(Boolean_prototype_Addr, Boolean_prototype_Obj),
P.p(Boolean_prototype_toString_Addr, Boolean_prototype_toString_Obj),
P.p(Boolean_prototype_valueOf_Addr, Boolean_prototype_valueOf_Obj),
P.p(Error_prototype_Addr, Error_prototype_Obj),
P.p(Error_prototype_toString_Addr, Error_prototype_toString_Obj),
P.p(JSON_parse_Addr, JSON_parse_Obj),
P.p(JSON_stringify_Addr, JSON_stringify_Obj),
P.p(Date_now_Addr, Date_now_Obj),
P.p(Date_parse_Addr, Date_parse_Obj),
P.p(Date_prototype_Addr, Date_prototype_Obj),
P.p(RegExp_prototype_Addr, RegExp_prototype_Obj),
P.p(Arguments_Addr, Arguments_Obj),
P.p(Dummy_Addr, Utils.createObj(TreeMap.empty(Ord.hashEqualsOrd())))));
return new Interpreter.State(
new Domains.StmtTerm(s),
env,