Skip to content

Commit d2ed027

Browse files
authored
Merge pull request #446 from bloomberg/no_assert
add no assert test case
2 parents 16f2327 + 8023d94 commit d2ed027

File tree

5 files changed

+132
-120
lines changed

5 files changed

+132
-120
lines changed

jscomp/js_main.ml

Lines changed: 94 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -329,125 +329,100 @@ let buckle_script_flags =
329329
:: ("-bs-diagnose", Arg.Set Js_config.diagnose,
330330
" More verbose output")
331331
:: (
332-
let module F = struct
333-
let set r () = r := true
334-
let unset r () = r := false
335-
let _a = set make_archive
336-
let _absname = set Location.absname
337-
let _annot = set annotations
338-
let _binannot = set binary_annotations
339-
let _c = set compile_only
340-
let _cc s = c_compiler := Some s
341-
let _cclib s = ccobjs := Misc.rev_split_words s @ !ccobjs
342-
let _ccopt s = first_ccopts := s :: !first_ccopts
343-
let _compat_32 = set bytecode_compatible_32
344-
let _config = show_config
345-
let _custom = set custom_runtime
346-
let _no_check_prims = set no_check_prims
347-
let _dllib s = dllibs := Misc.rev_split_words s @ !dllibs
348-
let _dllpath s = dllpaths := !dllpaths @ [s]
349-
let _for_pack s = for_package := Some s
350-
let _g = set debug
351-
let _i () = print_types := true; compile_only := true
352-
let _I s = include_dirs := s :: !include_dirs
353-
let _impl = impl
354-
let _intf = intf
355-
let _intf_suffix s = Config.interface_suffix := s
356-
let _keep_docs = set keep_docs
357-
let _keep_locs = set keep_locs
358-
let _labels = unset classic
359-
let _linkall = set link_everything
360-
let _make_runtime () =
361-
custom_runtime := true; make_runtime := true; link_everything := true
362-
let _no_alias_deps = set transparent_modules
363-
let _no_app_funct = unset applicative_functors
364-
let _noassert = set noassert
365-
let _nolabels = set classic
366-
let _noautolink = set no_auto_link
367-
let _nostdlib = set no_std_include
368-
let _o s = output_name := Some s
369-
let _open s = open_modules := s :: !open_modules
370-
let _output_obj () = output_c_object := true; custom_runtime := true
371-
let _output_complete_obj () =
372-
output_c_object := true; output_complete_object := true; custom_runtime := true
373-
let _pack = set make_package
374-
let _pp s = preprocessor := Some s
375-
let _ppx s = first_ppx := s :: !first_ppx
376-
let _principal = set principal
377-
let _rectypes = set recursive_types
378-
let _runtime_variant s = runtime_variant := s
379-
let _safe_string = unset unsafe_string
380-
let _short_paths = unset real_paths
381-
let _strict_sequence = set strict_sequence
382-
let _strict_formats = set strict_formats
383-
let _thread = set use_threads
384-
let _vmthread = set use_vmthreads
385-
let _unsafe = set fast
386-
let _unsafe_string = set unsafe_string
387-
let _use_prims s = use_prims := s
388-
let _use_runtime s = use_runtime := s
389-
let _v () = print_version_and_library "compiler"
390-
let _version = print_version_string
391-
let _vnum = print_version_string
392-
let _w = (Warnings.parse_options false)
393-
let _warn_error = (Warnings.parse_options true)
394-
let _warn_help = Warnings.help_warnings
395-
let _where = print_standard_library
396-
let _verbose = set verbose
397-
let _nopervasives = set nopervasives
398-
let _dsource = set dump_source
399-
let _dparsetree = set dump_parsetree
400-
let _dtypedtree = set dump_typedtree
401-
let _drawlambda = set dump_rawlambda
402-
let _dlambda = set dump_lambda
403-
let _dinstr = set dump_instr
404-
let anonymous = anonymous
405-
end in
406-
[ mk_absname F._absname;
407-
mk_annot F._annot;
408-
mk_binannot F._binannot;
409-
mk_c F._c;
410-
mk_config F._config;
411-
mk_g_byt F._g;
412-
mk_i F._i;
413-
mk_I F._I;
414-
mk_impl F._impl;
415-
mk_intf F._intf;
416-
mk_intf_suffix F._intf_suffix;
417-
mk_keep_docs F._keep_docs;
418-
mk_keep_locs F._keep_locs;
419-
mk_labels F._labels;
420-
mk_no_alias_deps F._no_alias_deps;
421-
mk_no_app_funct F._no_app_funct;
422-
mk_noassert F._noassert;
423-
mk_nolabels F._nolabels;
424-
mk_nostdlib F._nostdlib;
425-
mk_o F._o;
426-
mk_open F._open;
427-
mk_pp F._pp;
428-
mk_ppx F._ppx;
429-
mk_principal F._principal;
430-
mk_rectypes F._rectypes;
431-
mk_safe_string F._safe_string;
432-
mk_short_paths F._short_paths;
433-
mk_strict_sequence F._strict_sequence;
434-
mk_strict_formats F._strict_formats;
435-
mk_unsafe F._unsafe;
436-
mk_v F._v;
437-
mk_verbose F._verbose;
438-
mk_version F._version;
439-
mk_vnum F._vnum;
440-
mk_w F._w;
441-
mk_warn_error F._warn_error;
442-
mk_warn_help F._warn_help;
443-
mk_where F._where;
444-
mk__ F.anonymous;
445-
mk_nopervasives F._nopervasives;
446-
mk_dsource F._dsource;
447-
mk_dparsetree F._dparsetree;
448-
mk_dtypedtree F._dtypedtree;
449-
mk_drawlambda F._drawlambda;
450-
mk_dlambda F._dlambda ]
332+
let set r () = r := true in
333+
let unset r () = r := false in
334+
let _absname = set Location.absname in
335+
let _annot = set annotations in
336+
let _binannot = set binary_annotations in
337+
let _c = set compile_only in
338+
let _config = show_config in
339+
let _g = set debug in
340+
let _i () = print_types := true; compile_only := true in
341+
let _I s = include_dirs := s :: !include_dirs in
342+
let _impl = impl in
343+
let _intf = intf in
344+
let _intf_suffix s = Config.interface_suffix := s in
345+
let _keep_docs = set keep_docs in
346+
let _keep_locs = set keep_locs in
347+
let _labels = unset classic in
348+
let _no_alias_deps = set transparent_modules in
349+
let _no_app_funct = unset applicative_functors in
350+
let _noassert = set noassert in
351+
let _nolabels = set classic in
352+
let _nostdlib = set no_std_include in
353+
let _o s = output_name := Some s in
354+
let _open s = open_modules := s :: !open_modules in
355+
let _pp s = preprocessor := Some s in
356+
let _ppx s = first_ppx := s :: !first_ppx in
357+
let _principal = set principal in
358+
let _rectypes = set recursive_types in
359+
let _safe_string = unset unsafe_string in
360+
let _short_paths = unset real_paths in
361+
let _strict_sequence = set strict_sequence in
362+
let _strict_formats = set strict_formats in
363+
let _unsafe = set fast in
364+
let _unsafe_string = set unsafe_string in
365+
let _v () = print_version_and_library "compiler" in
366+
let _version = print_version_string in
367+
let _vnum = print_version_string in
368+
let _w = (Warnings.parse_options false) in
369+
let _warn_error = (Warnings.parse_options true) in
370+
let _warn_help = Warnings.help_warnings in
371+
let _where = print_standard_library in
372+
let _verbose = set verbose in
373+
let _nopervasives = set nopervasives in
374+
let _dsource = set dump_source in
375+
let _dparsetree = set dump_parsetree in
376+
let _dtypedtree = set dump_typedtree in
377+
let _drawlambda = set dump_rawlambda in
378+
let _dlambda = set dump_lambda in
379+
let anonymous = anonymous in
380+
381+
[ mk_absname _absname;
382+
mk_annot _annot;
383+
mk_binannot _binannot;
384+
mk_c _c;
385+
mk_config _config;
386+
mk_g_byt _g;
387+
mk_i _i;
388+
mk_I _I;
389+
mk_impl _impl;
390+
mk_intf _intf;
391+
mk_intf_suffix _intf_suffix;
392+
mk_keep_docs _keep_docs;
393+
mk_keep_locs _keep_locs;
394+
mk_labels _labels;
395+
mk_no_alias_deps _no_alias_deps;
396+
mk_no_app_funct _no_app_funct;
397+
mk_noassert _noassert;
398+
mk_nolabels _nolabels;
399+
mk_nostdlib _nostdlib;
400+
mk_o _o;
401+
mk_open _open;
402+
mk_pp _pp;
403+
mk_ppx _ppx;
404+
mk_principal _principal;
405+
mk_rectypes _rectypes;
406+
mk_safe_string _safe_string;
407+
mk_short_paths _short_paths;
408+
mk_strict_sequence _strict_sequence;
409+
mk_strict_formats _strict_formats;
410+
mk_unsafe _unsafe;
411+
mk_v _v;
412+
mk_verbose _verbose;
413+
mk_version _version;
414+
mk_vnum _vnum;
415+
mk_w _w;
416+
mk_warn_error _warn_error;
417+
mk_warn_help _warn_help;
418+
mk_where _where;
419+
mk__ anonymous;
420+
mk_nopervasives _nopervasives;
421+
mk_dsource _dsource;
422+
mk_dparsetree _dparsetree;
423+
mk_dtypedtree _dtypedtree;
424+
mk_drawlambda _drawlambda;
425+
mk_dlambda _dlambda ]
451426
)
452427

453428
let () =

jscomp/test/.depend

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,8 @@ nested_obj_literal.cmj :
340340
nested_obj_literal.cmx :
341341
nested_obj_test.cmj :
342342
nested_obj_test.cmx :
343+
noassert.cmj :
344+
noassert.cmx :
343345
number_lexer.cmj : ../stdlib/sys.cmi ../stdlib/lexing.cmi
344346
number_lexer.cmx : ../stdlib/sys.cmx ../stdlib/lexing.cmx
345347
obj_literal_ppx.cmj : ../stdlib/array.cmi
@@ -1000,6 +1002,8 @@ nested_obj_literal.cmo :
10001002
nested_obj_literal.cmj :
10011003
nested_obj_test.cmo :
10021004
nested_obj_test.cmj :
1005+
noassert.cmo :
1006+
noassert.cmj :
10031007
number_lexer.cmo : ../stdlib/sys.cmi ../stdlib/lexing.cmi
10041008
number_lexer.cmj : ../stdlib/sys.cmj ../stdlib/lexing.cmj
10051009
obj_literal_ppx.cmo : ../stdlib/array.cmi

jscomp/test/noassert.ml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
3+
4+
5+
let f () = assert false
6+
7+
8+
let h ()= assert (3 > 2)

jscomp/test/test.mllib

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,4 +325,6 @@ format_test
325325

326326
config1_test
327327
config2_test
328-
largest_int_flow
328+
largest_int_flow
329+
330+
noassert

lib/js/test/noassert.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// GENERATED CODE BY BUCKLESCRIPT VERSION 0.5.5 , PLEASE EDIT WITH CARE
2+
'use strict';
3+
4+
var Caml_builtin_exceptions = require("../caml_builtin_exceptions");
5+
6+
function f() {
7+
throw [
8+
Caml_builtin_exceptions.assert_failure,
9+
[
10+
"noassert.ml",
11+
5,
12+
11
13+
]
14+
];
15+
}
16+
17+
function h() {
18+
return 0;
19+
}
20+
21+
exports.f = f;
22+
exports.h = h;
23+
/* No side effect */

0 commit comments

Comments
 (0)