[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 21/99: Primitives should return Scheme Booleans
From: |
Christopher Allan Webber |
Subject: |
[Guile-commits] 21/99: Primitives should return Scheme Booleans |
Date: |
Sun, 10 Oct 2021 21:50:46 -0400 (EDT) |
cwebber pushed a commit to branch compile-to-js-merge
in repository guile.
commit 4622269e684ad5918aff1b7fa29a47ad2c17b0a4
Author: Ian Price <ianprice90@googlemail.com>
AuthorDate: Mon Jun 15 16:34:42 2015 +0100
Primitives should return Scheme Booleans
---
module/language/js-il/runtime.js | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/module/language/js-il/runtime.js b/module/language/js-il/runtime.js
index 688974e..271e508 100644
--- a/module/language/js-il/runtime.js
+++ b/module/language/js-il/runtime.js
@@ -19,6 +19,10 @@ function not_implemented_yet() {
throw "not implemented yet";
};
+function coerce_bool(obj) {
+ return obj ? scheme.TRUE : scheme.FALSE;
+};
+
// Numbers
scheme.primitives.add = function (x, y) {
return x + y;
@@ -45,11 +49,12 @@ scheme.primitives.div = function (x, y) {
};
scheme.primitives["="] = function (x, y) {
- return x == y;
+ return coerce_bool(x == y);
};
scheme.primitives["<"] = function (x, y) {
- return x < y;
+ return coerce_bool(x < y);
+};
};
scheme.primitives.quo = not_implemented_yet;
@@ -98,7 +103,7 @@ scheme.list = function () {
};
scheme.primitives["null?"] = function(obj) {
- return scheme.EMPTY == obj;
+ return coerce_bool(scheme.EMPTY == obj);
};
// Symbols
- [Guile-commits] 07/99: Simple inlining of immediate calls, (continued)
- [Guile-commits] 07/99: Simple inlining of immediate calls, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 08/99: conditional->branch, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 10/99: fix makefile, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 11/99: Compile rest args, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 16/99: Remove superfluous space, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 20/99: Implement keyword argument parsing, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 12/99: Compile string constants, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 13/99: Mangle js identifiers, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 15/99: Handle case-lambda via a jump table, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 19/99: Simplify output Javascript, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 21/99: Primitives should return Scheme Booleans,
Christopher Allan Webber <=
- [Guile-commits] 23/99: Compile cps $prompt form to javascript, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 26/99: abort-to-prompt takes multiple arguments, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 34/99: Change function type representation, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 33/99: Change program type representation, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 31/99: Different types for Continuation and Variable identifiers, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 29/99: Use scheme.frame.Prompt objects for prompts on dynstack, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 30/99: Implement fluid primitives, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 36/99: Handle more identifier characters, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 47/99: Add some primitives to runtime.js, Christopher Allan Webber, 2021/10/10
- [Guile-commits] 50/99: Add more variables to no-values-primitives, Christopher Allan Webber, 2021/10/10