this_binding_conditionals: { options = { conditionals: true, evaluate: true, side_effects: true, } input: { "use strict"; (1 && a)(); (0 || a)(); (0 || 1 && a)(); (1 ? a : 0)(); (1 && a.b)(); (0 || a.b)(); (0 || 1 && a.b)(); (1 ? a.b : 0)(); (1 && a[b])(); (0 || a[b])(); (0 || 1 && a[b])(); (1 ? a[b] : 0)(); (1 && eval)(); (0 || eval)(); (0 || 1 && eval)(); (1 ? eval : 0)(); } expect: { "use strict"; a(); a(); a(); a(); (0, a.b)(); (0, a.b)(); (0, a.b)(); (0, a.b)(); (0, a[b])(); (0, a[b])(); (0, a[b])(); (0, a[b])(); (0, eval)(); (0, eval)(); (0, eval)(); (0, eval)(); } } this_binding_collapse_vars: { options = { collapse_vars: true, toplevel: true, unused: true, } input: { "use strict"; var c = a; c(); var d = a.b; d(); var e = eval; e(); } expect: { "use strict"; a(); (0, a.b)(); (0, eval)(); } } this_binding_side_effects: { options = { side_effects: true, } input: { (function(foo) { (0, foo)(); (0, foo.bar)(); (0, eval)("console.log(foo);"); }()); (function(foo) { "use strict"; (0, foo)(); (0, foo.bar)(); (0, eval)("console.log(foo);"); }()); (function(foo) { var eval = console; (0, foo)(); (0, foo.bar)(); (0, eval)("console.log(foo);"); }()); } expect: { (function(foo) { foo(); (0, foo.bar)(); eval("console.log(foo);"); }()); (function(foo) { "use strict"; foo(); (0, foo.bar)(); (0, eval)("console.log(foo);"); }()); (function(foo) { var eval = console; foo(); (0, foo.bar)(); eval("console.log(foo);"); }()); } } this_binding_sequences: { options = { sequences: true, side_effects: true, } input: { console.log(typeof function() { return eval("this"); }()); console.log(typeof function() { "use strict"; return eval("this"); }()); console.log(typeof function() { return (0, eval)("this"); }()); console.log(typeof function() { "use strict"; return (0, eval)("this"); }()); } expect: { console.log(typeof function() { return eval("this"); }()), console.log(typeof function() { "use strict"; return eval("this"); }()), console.log(typeof function() { return eval("this"); }()), console.log(typeof function() { "use strict"; return (0, eval)("this"); }()); } expect_stdout: [ "object", "undefined", "object", "object", ] } .tmpl: Likewise * gnu/system/examples/lightweight-desktop.tmpl: Likewise * gnu/system/examples/vm-image.tmpl: Likewise * gnu/system/examples/yggdrasil.tmpl: Likewise * gnu/system/hurd.scm: Likewise * gnu/system/images/hurd.scm: Likewise * gnu/system/images/novena.scm: Likewise * gnu/system/images/pine64.scm: Likewise * gnu/system/images/pinebook-pro.scm: Likewise * gnu/system/images/rock64.scm: Likewise * gnu/system/install.scm: Likewise * gnu/system/vm.scm: Likewise * gnu/tests.scm: Likewise * gnu/tests/ganeti.scm: Likewise * gnu/tests/install.scm: Likewise * gnu/tests/nfs.scm: Likewise * gnu/tests/telephony.scm: Likewise * tests/boot-parameters.scm: Likewise * tests/system.scm: Likewise Maxim Cournoyer 2021-04-12tests: Support package extensions in the backdoor REPL....* gnu/tests.scm (<marionette-configuration>): Add 'extensions' field. (marionette-shepherd-service): Honour the field. (with-import-modules-and-extensions): Define a combination of 'with-import-modules' and 'with-extensions'. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Maxime Devos 2021-02-19tests: Export %simple-os....* gnu/tests.scm (%simple-os): Export it. Mathieu Othacehe 2020-07-25utils: Move <location> and '&error-location' to (guix diagnostics)....* guix/utils.scm (<location>, source-properties->location) (location->source-properties, &error-location): Move to... * guix/diagnostics.scm: ... here. * gnu.scm: Adjust imports accordingly. * gnu/machine.scm: Likewise. * gnu/system.scm: Likewise. * gnu/tests.scm: Likewise. * guix/inferior.scm: Likewise. * tests/channels.scm: Likewise. * tests/packages.scm: Likewise. Ludovic Courtès 2020-03-05tests: Add <system-test> gexp compiler....* gnu/tests.scm (compile-system-test): New gexp compiler. Ludovic Courtès 2020-01-23tests: Fix typo in comment....* gnu/tests.scm: Add missing word in commentary. Ludovic Courtès