Skip to content

add no assert test case #446

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 17, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
213 changes: 94 additions & 119 deletions jscomp/js_main.ml
Original file line number Diff line number Diff line change
Expand Up @@ -329,125 +329,100 @@ let buckle_script_flags =
:: ("-bs-diagnose", Arg.Set Js_config.diagnose,
" More verbose output")
:: (
let module F = struct
let set r () = r := true
let unset r () = r := false
let _a = set make_archive
let _absname = set Location.absname
let _annot = set annotations
let _binannot = set binary_annotations
let _c = set compile_only
let _cc s = c_compiler := Some s
let _cclib s = ccobjs := Misc.rev_split_words s @ !ccobjs
let _ccopt s = first_ccopts := s :: !first_ccopts
let _compat_32 = set bytecode_compatible_32
let _config = show_config
let _custom = set custom_runtime
let _no_check_prims = set no_check_prims
let _dllib s = dllibs := Misc.rev_split_words s @ !dllibs
let _dllpath s = dllpaths := !dllpaths @ [s]
let _for_pack s = for_package := Some s
let _g = set debug
let _i () = print_types := true; compile_only := true
let _I s = include_dirs := s :: !include_dirs
let _impl = impl
let _intf = intf
let _intf_suffix s = Config.interface_suffix := s
let _keep_docs = set keep_docs
let _keep_locs = set keep_locs
let _labels = unset classic
let _linkall = set link_everything
let _make_runtime () =
custom_runtime := true; make_runtime := true; link_everything := true
let _no_alias_deps = set transparent_modules
let _no_app_funct = unset applicative_functors
let _noassert = set noassert
let _nolabels = set classic
let _noautolink = set no_auto_link
let _nostdlib = set no_std_include
let _o s = output_name := Some s
let _open s = open_modules := s :: !open_modules
let _output_obj () = output_c_object := true; custom_runtime := true
let _output_complete_obj () =
output_c_object := true; output_complete_object := true; custom_runtime := true
let _pack = set make_package
let _pp s = preprocessor := Some s
let _ppx s = first_ppx := s :: !first_ppx
let _principal = set principal
let _rectypes = set recursive_types
let _runtime_variant s = runtime_variant := s
let _safe_string = unset unsafe_string
let _short_paths = unset real_paths
let _strict_sequence = set strict_sequence
let _strict_formats = set strict_formats
let _thread = set use_threads
let _vmthread = set use_vmthreads
let _unsafe = set fast
let _unsafe_string = set unsafe_string
let _use_prims s = use_prims := s
let _use_runtime s = use_runtime := s
let _v () = print_version_and_library "compiler"
let _version = print_version_string
let _vnum = print_version_string
let _w = (Warnings.parse_options false)
let _warn_error = (Warnings.parse_options true)
let _warn_help = Warnings.help_warnings
let _where = print_standard_library
let _verbose = set verbose
let _nopervasives = set nopervasives
let _dsource = set dump_source
let _dparsetree = set dump_parsetree
let _dtypedtree = set dump_typedtree
let _drawlambda = set dump_rawlambda
let _dlambda = set dump_lambda
let _dinstr = set dump_instr
let anonymous = anonymous
end in
[ mk_absname F._absname;
mk_annot F._annot;
mk_binannot F._binannot;
mk_c F._c;
mk_config F._config;
mk_g_byt F._g;
mk_i F._i;
mk_I F._I;
mk_impl F._impl;
mk_intf F._intf;
mk_intf_suffix F._intf_suffix;
mk_keep_docs F._keep_docs;
mk_keep_locs F._keep_locs;
mk_labels F._labels;
mk_no_alias_deps F._no_alias_deps;
mk_no_app_funct F._no_app_funct;
mk_noassert F._noassert;
mk_nolabels F._nolabels;
mk_nostdlib F._nostdlib;
mk_o F._o;
mk_open F._open;
mk_pp F._pp;
mk_ppx F._ppx;
mk_principal F._principal;
mk_rectypes F._rectypes;
mk_safe_string F._safe_string;
mk_short_paths F._short_paths;
mk_strict_sequence F._strict_sequence;
mk_strict_formats F._strict_formats;
mk_unsafe F._unsafe;
mk_v F._v;
mk_verbose F._verbose;
mk_version F._version;
mk_vnum F._vnum;
mk_w F._w;
mk_warn_error F._warn_error;
mk_warn_help F._warn_help;
mk_where F._where;
mk__ F.anonymous;
mk_nopervasives F._nopervasives;
mk_dsource F._dsource;
mk_dparsetree F._dparsetree;
mk_dtypedtree F._dtypedtree;
mk_drawlambda F._drawlambda;
mk_dlambda F._dlambda ]
let set r () = r := true in
let unset r () = r := false in
let _absname = set Location.absname in
let _annot = set annotations in
let _binannot = set binary_annotations in
let _c = set compile_only in
let _config = show_config in
let _g = set debug in
let _i () = print_types := true; compile_only := true in
let _I s = include_dirs := s :: !include_dirs in
let _impl = impl in
let _intf = intf in
let _intf_suffix s = Config.interface_suffix := s in
let _keep_docs = set keep_docs in
let _keep_locs = set keep_locs in
let _labels = unset classic in
let _no_alias_deps = set transparent_modules in
let _no_app_funct = unset applicative_functors in
let _noassert = set noassert in
let _nolabels = set classic in
let _nostdlib = set no_std_include in
let _o s = output_name := Some s in
let _open s = open_modules := s :: !open_modules in
let _pp s = preprocessor := Some s in
let _ppx s = first_ppx := s :: !first_ppx in
let _principal = set principal in
let _rectypes = set recursive_types in
let _safe_string = unset unsafe_string in
let _short_paths = unset real_paths in
let _strict_sequence = set strict_sequence in
let _strict_formats = set strict_formats in
let _unsafe = set fast in
let _unsafe_string = set unsafe_string in
let _v () = print_version_and_library "compiler" in
let _version = print_version_string in
let _vnum = print_version_string in
let _w = (Warnings.parse_options false) in
let _warn_error = (Warnings.parse_options true) in
let _warn_help = Warnings.help_warnings in
let _where = print_standard_library in
let _verbose = set verbose in
let _nopervasives = set nopervasives in
let _dsource = set dump_source in
let _dparsetree = set dump_parsetree in
let _dtypedtree = set dump_typedtree in
let _drawlambda = set dump_rawlambda in
let _dlambda = set dump_lambda in
let anonymous = anonymous in

[ mk_absname _absname;
mk_annot _annot;
mk_binannot _binannot;
mk_c _c;
mk_config _config;
mk_g_byt _g;
mk_i _i;
mk_I _I;
mk_impl _impl;
mk_intf _intf;
mk_intf_suffix _intf_suffix;
mk_keep_docs _keep_docs;
mk_keep_locs _keep_locs;
mk_labels _labels;
mk_no_alias_deps _no_alias_deps;
mk_no_app_funct _no_app_funct;
mk_noassert _noassert;
mk_nolabels _nolabels;
mk_nostdlib _nostdlib;
mk_o _o;
mk_open _open;
mk_pp _pp;
mk_ppx _ppx;
mk_principal _principal;
mk_rectypes _rectypes;
mk_safe_string _safe_string;
mk_short_paths _short_paths;
mk_strict_sequence _strict_sequence;
mk_strict_formats _strict_formats;
mk_unsafe _unsafe;
mk_v _v;
mk_verbose _verbose;
mk_version _version;
mk_vnum _vnum;
mk_w _w;
mk_warn_error _warn_error;
mk_warn_help _warn_help;
mk_where _where;
mk__ anonymous;
mk_nopervasives _nopervasives;
mk_dsource _dsource;
mk_dparsetree _dparsetree;
mk_dtypedtree _dtypedtree;
mk_drawlambda _drawlambda;
mk_dlambda _dlambda ]
)

let () =
Expand Down
4 changes: 4 additions & 0 deletions jscomp/test/.depend
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,8 @@ nested_obj_literal.cmj :
nested_obj_literal.cmx :
nested_obj_test.cmj :
nested_obj_test.cmx :
noassert.cmj :
noassert.cmx :
number_lexer.cmj : ../stdlib/sys.cmi ../stdlib/lexing.cmi
number_lexer.cmx : ../stdlib/sys.cmx ../stdlib/lexing.cmx
obj_literal_ppx.cmj : ../stdlib/array.cmi
Expand Down Expand Up @@ -1000,6 +1002,8 @@ nested_obj_literal.cmo :
nested_obj_literal.cmj :
nested_obj_test.cmo :
nested_obj_test.cmj :
noassert.cmo :
noassert.cmj :
number_lexer.cmo : ../stdlib/sys.cmi ../stdlib/lexing.cmi
number_lexer.cmj : ../stdlib/sys.cmj ../stdlib/lexing.cmj
obj_literal_ppx.cmo : ../stdlib/array.cmi
Expand Down
8 changes: 8 additions & 0 deletions jscomp/test/noassert.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@




let f () = assert false


let h ()= assert (3 > 2)
4 changes: 3 additions & 1 deletion jscomp/test/test.mllib
Original file line number Diff line number Diff line change
Expand Up @@ -325,4 +325,6 @@ format_test

config1_test
config2_test
largest_int_flow
largest_int_flow

noassert
23 changes: 23 additions & 0 deletions lib/js/test/noassert.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// GENERATED CODE BY BUCKLESCRIPT VERSION 0.5.5 , PLEASE EDIT WITH CARE
'use strict';

var Caml_builtin_exceptions = require("../caml_builtin_exceptions");

function f() {
throw [
Caml_builtin_exceptions.assert_failure,
[
"noassert.ml",
5,
11
]
];
}

function h() {
return 0;
}

exports.f = f;
exports.h = h;
/* No side effect */