Bug 1456416 - Unit tests for multipart parser;r?arai
MozReview-Commit-ID: 23guOSCBqFh
new file mode 100644
index 0000000000000000000000000000000000000000..bdce15677836206b795e83fed4c39ae22e399589
GIT binary patch
literal 323
zc${62!AiqG5Qdkfgd(Mgh=iVsNKWDlcuHtmBQ{F5cnKb+$+T=ucEju{=9zp+N1+Bf
zm-(6hpKq8X%O8~}S4F&D$Hkkj(Rl6q`)@fD*NHZ@Hv8;vxYJ0{E0Bh5gA1%0An@9n
z=t+AdXkN&6NWRaZ#hcTdr6~RC2%X~%<-udi%!#T<cm6JgJ<{^SRKL6-H(y$68O(qd
z`GyM@;Nf`ZHg=9X*8je$*qJ|X4_Ntu5+1>ct@~1KiY#BL;nCSx9)eGxU}vp-FE>S+
e4(7u|2zhoTFM`pORd6W<*SX{t3OSN;%<2c*WNS45
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/multipart/unit/argument_and_var.js
@@ -0,0 +1,6 @@
+// This should not cause `j` to be redeclared.
+({
+ foo: function k(j) {
+ var j
+ }
+});
new file mode 100644
index 0000000000000000000000000000000000000000..2e1d2772237eb94d3b900e51ef7cfa31ef8fd15b
GIT binary patch
literal 213
zc${5Mu?oU46bzvhDI&$eS&H}tZcc42r9wL-#icmJ^r^v^lr)O{X}`hHrQi+6amO8(
z6xETUCMR)O#^fwoP*&Js|6QUe5vmpHR*c?NfC&<*`D2wb%kQaVuO2ohW(2!PH~^Q-
zFsscv?t3s6S{G5SJBVsCj1_8`g{K?a{<nlybIOhAY(r~OR5_iVgq{Z<|IJKOlPsJ3
UT^JyY9J~d_GpFVrLOw>0e~Iiv-v9sr
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/multipart/unit/catch_collision.js
@@ -0,0 +1,6 @@
+var ex;
+try {
+
+} catch (ex) {
+
+}
new file mode 100644
index 0000000000000000000000000000000000000000..5b8e4577281dba0f86615e510e464eb827e34d36
GIT binary patch
literal 140
zc${<c^z#a4h;|Qh^!0TNip@+(%`3?)skE-+Vc>Gg$xqG}b51Nt&T!62EG<q|3Mr}t
zbAw9~OHy-zN|l^4^HMVN(mlcY(lS$vc!HCQG7CzggF}Km{oI2QCbBUxrACJYxw;~R
SWVjd@nAn&Y7+5$MfFuAAuq(>|
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/multipart/unit/catch_implicit.js
@@ -0,0 +1,6 @@
+// `e` is neither a var, a let, a param, nor a free variable.
+try {
+
+} catch (e) {
+
+}
new file mode 100644
index 0000000000000000000000000000000000000000..84870012fafb8924628979a6b2af2cd85dafe94c
GIT binary patch
literal 326
zc${5N!AiqG5M7oKij*QEQly7cq<HENcuH(qB5jdu@e(|Y$+RqNcEjvg?05NtZUtFz
zPH*0u_a2j%yB8(ub(L+mS@o`4w5<93^eykjbmgc6^9lqVGLoNW-Xk%#Z$PSXJ<f7%
zTWyc!ukE0b76lxUR-d+E?QHSY6M7%eL$GN0Fu26Vgg|yQR1N8#$A8DUYtM^~4n<%T
zQ;3cB$Jh|b$uk%e*Lj4Bfw2pY`TyD=)@omsyS0kXPSOFMz@!J~(i2d<uZkk7%V8p<
X2$S61-UxXu$BDd3#o$6+gpm+Gn2c@C
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/multipart/unit/eval_fake.js
@@ -0,0 +1,4 @@
+// This is not a direct call to `eval`.
+eval("foo");
+
+var eval = function() {}
\ No newline at end of file
new file mode 100644
index 0000000000000000000000000000000000000000..37c5b243ddf95b16800687030bab3a2c0cf58dab
GIT binary patch
literal 279
zc$`H~O-sW-5FM6Mij-2MhzAeFgY+al*HfZtiP$39;wAJjB-604*$uO!*njUT$j<4#
znfJlu<>6IBy{oeQKC4cqB_~EMPo27fRr$xxhPe11m_jh#-EKc!BN61jz1-)<wZ?Tx
zxZHZ~(Y_;NPeL5-p3&N5Ul-UB|7W~VW25pHKE9bKN2`TnU@|-;s0D@k*tE<-AQoyr
zkagn+n(BtlAhkYL<zc7O8;j9|zR-@(-q**fDAHxKxCRArM)NBLYNn<D<47lQ1MmZr
CbzLF=
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/multipart/unit/eval_fake_2.js
@@ -0,0 +1,4 @@
+// This is not a direct call to `eval`.
+eval("foo");
+
+function eval() {}
\ No newline at end of file
new file mode 100644
index 0000000000000000000000000000000000000000..fd7647f4f708f4a03d5478570b87b002737f2027
GIT binary patch
literal 312
zc$`H~!D_-l5FHm0DN;(2;-LreP<oKkdrwIlB~nAlikHyCl8myj*$uPPQa_~s+ts2w
zr}t*w%zKmO#Y#f8ER*#*DL-|CmNg$<e#K;(c#p)`Y!%7cbvR44ZM5CzC(%wLJw}-Q
zbcEh(XP+~*M_PQ@nge^o+9*;-I9)humH7y?MMm-?S(EPgA?`|6jBU6%Kbv3FrwC8)
zIzVM4QwS3G?q8KLkxtI;scQ~U$xWFTOBuf#_lNkc%wXqSwJEbKPKql4A)p6ha0J%^
S{;M|(-McY}(QO~ZjrarlH)e_e
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/multipart/unit/eval_fake_in_function.js
@@ -0,0 +1,4 @@
+// This is not a direct call to eval.
+function foo(eval) {
+ eval("foo");
+}
\ No newline at end of file
new file mode 100644
index 0000000000000000000000000000000000000000..98f67d4c931fcd0f9154b4efb6306d6a2d8923df
GIT binary patch
literal 309
zc$`H~!D<3A5FLYvh!iPOJa~{Eq=!<x_q5xtc1so6NH0qdVRw{3Hd!XqQa_~sYZPqe
z^muRHyf<mSd6!VGie$Y`iZ5NGWzEOuKQWml-Xk&ApNeGVT71Ya>Ruydzb&En+S%FC
zQKQUOk!p~U{5)!s6=M@T_o=qEwugA&=|hKQWh7JJqh%;7(k)M4lrfQo$@1G)98l`&
z<04ZBq$~4^l?mZz_;_vn-{#W0l)EC|tYrLd-0kh1>*J3y<*vxGsJsmU1V9JG7@!Y#
RXBei_h0!gD-i;7q04L16W_tht
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/multipart/unit/eval_in_function.js
@@ -0,0 +1,4 @@
+// This is a direct call to eval, in foo.
+function foo() {
+ eval("foo");
+}
new file mode 100644
index 0000000000000000000000000000000000000000..cf01c1287642bf3881ac41a9bc778ca84665bc06
GIT binary patch
literal 190
zc${<c^z#a4h;|Qh^!0TNip@+(%`3?)skFYtqu~i=r)8!VxmFYur4|=w=I5y)n8789
zC8@bUB{I&5IXMV%p5Wx7%z_d<pUjffqQsowlA_GKbcD2mV{vh6QAuh_SYlCda(+Q-
wbZ|(Jr=NQ;!fp{3j?}Wm9JaLl{OFJ%S676L92*w{0|O%i6B7#q0}}@m04sz*@c;k-
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/multipart/unit/eval_simple.js
@@ -0,0 +1,2 @@
+// This direct call to `eval` must be detected.
+eval("foo");
new file mode 100644
index 0000000000000000000000000000000000000000..7b34270ea36c1ec8859f25173ac38f69ffd2ad6e
GIT binary patch
literal 305
zc${62!Ab)$5Qc|PibyFUB0YF0B0Y+C53;M<vc)cCQ@ku5#_U)E*<_idVxPg6?IV~L
zB;XwW!^ijkFnL)mB{YjVTdlJCUAJU|4*SO+F@f7$+g96cd4ivsc$#@n9H@Ommdf??
z@Tvnbnrhb(YgK&rOx|l}M^drw!*uSrL$gN4j-u&jNs$2qb#eOU8I4JN7RNPy7<wUP
zVlhN^_n$ewFK|md-&u7OQhoA=a@Xz~xv9%)A=6{yfxzJxa<i$6BH{HJfEbOhVgd|~
T0p|eMATETs6flI-9iHG9F$82E
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/multipart/unit/function_expression.js
@@ -0,0 +1,4 @@
+// This should not cause `a` to be redeclared.
+(function a() {
+ var a = 1;
+})()
\ No newline at end of file
new file mode 100644
index 0000000000000000000000000000000000000000..bd9cc8357d181e7306b8728f110f56fe86ca310e
GIT binary patch
literal 388
zc${62K}*9x5QT>&EG2{@BBh9jAkvcu@17D&L&V0C6feQUCYhEkX*O(DY5tRc!T;tY
zwnV%v-@Nzc?XDli&naYK;;mL*@-9oPjWpfkH@ms@WnId87Y*80qISKuMQyNr6FMza
zg9`#F@(Q1@sDu_qs(QZssEZzaRd#p(14_gFxn)hl0S%tIUL>KY)|v)wx|lroHQ!@l
zf@7nxZK=~;Dt(~Ld9!^8#18fO%0JI=(n8C|%mzP1L*ZXe2hP$>62)OU{&?Xq<ex&b
zj&GIXD&MnXwn>6ujC{=)Fb)9hiVp6u9)V2&E(vW8%wjZ6F0A>~CZi9XG_bFyw!^Gp
JfpoA&=LfJ)aK8Wm
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/multipart/unit/getter_setter_scope.js
@@ -0,0 +1,10 @@
+function foo(e) {
+ var obj = {
+ get x() {
+ var e; // This `e` and the function argument `e` should have a distinct scope.
+ },
+ set x(y) {
+ var e; // This `e` and the function argument `e` should have a distinct scope.
+ }
+ };
+}
\ No newline at end of file
new file mode 100644
index 0000000000000000000000000000000000000000..6036f4357c6ea20fff544ec64dfc2eb2015c8cab
GIT binary patch
literal 282
zc${61K}*9x5QT>&gi?x#c<>lRJooNF5==wH2FV65!NZ!2Wni-#W~X5PwLihNSPIT%
z-n{wVFh$)wYv`*s-){5vokny*a(JlJHDq}R$b#dWVLkX6ZwqoGxm|svJ_$M7c%F=X
zHEbpn<gk9B*o<xV6EY3u*UT6KdABaj4tcY8gT(0x2OBfL@-AK{^I`Gid0y#(X_lK4
zUHI{E{~wEfue-KxDt&%COP7`=l7(Q9)S~oVTbAd2ccDNj08mSS<WEBia0%)vQL6+N
IaIEjgAB417zyJUM
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/multipart/unit/let_in_fun.js
@@ -0,0 +1,3 @@
+function test() {
+ let limit = 1;
+}
new file mode 100644
index 0000000000000000000000000000000000000000..c1ae09025427e40ad662ee318ef28db51685e5f9
GIT binary patch
literal 348
zc${62K}*9x5QUc|gb;#=h<GeTibwArY)WH^*eKcJC3x8GPRvM}4YOOZKf!<NPjJzc
zfbaBXc<&o#krxkwRjV>xuha4sHFOT$;r5GP+&rQKl5Mfy0inu1djf0GbeBu%<TIHb
z$Q@=w>Npp22b0uV??Jyv63Xwd^IvX_KqF=<8bhv;oj!IaPuq7;Zj4-c0LpC(OHi#O
z=?qO5*lFzEMq(lqVee-Dv%X)6O_>)fG5&R*gtakAZT9|jTq9YRSWu?Z;fJKyHAuSJ
nlvy@b`m>O6=Ect=esao^hz9}t)At<@!ojmS58}Z_^El!^pH6S9
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/multipart/unit/object_literal.js
@@ -0,0 +1,6 @@
+var foo = {
+ 'first': 1,
+ second: 2,
+ "third": 3,
+ fourth
+};
new file mode 100644
index 0000000000000000000000000000000000000000..4d5cdd51f3ab414893dc46a6f46fc3e4537cc898
GIT binary patch
literal 180
zc${<c^z#a4h;|Qh^!0TNip@+(%`3?)skC0k!=U7pnU|88m+lD`OUq0xQVB~e%1lhk
zNp(q0&PgmvEXglYLl?@-&r@(LE>0~fNlgLD1t;ehr1AtO7iAWdL<ffidHT5rBWw}l
uU`l36WJ+QyODu{G337EsNSSbPFt9PPFaQA)8yg!76B7dqkjuivzyJURk2aJ5
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/multipart/unit/toplevel_var.js
@@ -0,0 +1,1 @@
+var a, b, c;
new file mode 100644
index 0000000000000000000000000000000000000000..2073a514fa6d4c33364c6a8d69996424bcb7d0b6
GIT binary patch
literal 282
zc${61K}*9x5QT>&gi?x#c<>lRJony%B$$SX4U!FBLJ#X^ECZX}FuN7|ul)&b3)13)
zfnmP)9#hoKi-f*v^UWr2w=|#)6b`FO+-AA=$N`6U#ZtQo;l3a{klocM*C!z_q-L5z
zwst%!^QKsh7?AyA%#ivp_>9`bYanNruN09o&3;5CU4BoD-bZk^-dlZi6mB>?{7*Vw
zmTHImXS!(YW!KhCCC_hX=`5fRb3-GA^h<HywPktcT?!x|O56Y>$5q6cfw%%OPsDX1
J7I4zf(=TTKS;PPU
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/multipart/unit/var_in_fun.js
@@ -0,0 +1,3 @@
+function test() {
+ var limit = 1;
+}
new file mode 100644
index 0000000000000000000000000000000000000000..c8d1a4ebe0d2d91cc6914990c49d7f6a5ca13d97
GIT binary patch
literal 315
zc${62!AiqG5QdkfgiuNm5%E|=qz4bZdyoXv60t$D#Y+%eH)9ys?1tHm*thl(+yr95
zIm`^-{PQ!D=Eaj>)viqT`=ors8jMGOyzlwtb&94&)8r%jM4(mT9FT|lRgzG)gH0wI
zplxrIM{6EIX-RTuZ-N5lhlYt+S_nnh`PJ4^EA>l&EqEZuZvSh;{?+7}+WNS8#vqis
z=vyFE*>^|aTo~R>_x!nyS5@Lr=EY8&zFEhy2j}M+TlA5nCi;?89m*^_Y2IVbI19mN
aL%tYFAOX!en=Q^5Uq(D){G5&P^Y9DJt7K{b
new file mode 100644
--- /dev/null
+++ b/js/src/jsapi-tests/binast/parser/multipart/unit/var_in_fun_plus_arg.js
@@ -0,0 +1,3 @@
+function test(arg) {
+ var limit = 1;
+}