Skip to content

Commit 02489d9

Browse files
Enhance JS::Object#to_s documentation
1 parent 629b5fc commit 02489d9

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

ext/js/js-core.c

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -295,12 +295,18 @@ static VALUE _rb_js_obj_typeof(VALUE obj) {
295295

296296
/*
297297
* call-seq:
298-
* inspect -> string
298+
* to_s -> string
299299
*
300300
* Returns a printable version of +self+:
301-
* p JS.global # => [object global]
301+
* JS.eval("return 'str'").to_s # => "str"
302+
* JS.eval("return true").to_s # => "true"
303+
* JS.eval("return 1").to_s # => "1"
304+
* JS.eval("return null").to_s # => "null"
305+
* JS.global.inspect # => "[object global]"
306+
*
307+
* JS::Object#inspect is an alias for JS::Object#to_s.
302308
*/
303-
static VALUE _rb_js_obj_inspect(VALUE obj) {
309+
static VALUE _rb_js_obj_to_s(VALUE obj) {
304310
struct jsvalue *p = check_jsvalue(obj);
305311
rb_js_abi_host_string_t ret0;
306312
rb_js_abi_host_js_value_to_string(p->abi, &ret0);
@@ -415,8 +421,8 @@ void Init_js() {
415421
rb_define_method(rb_cJS_Object, "__export_to_js", _rb_js_export_to_js, 0);
416422
rb_define_singleton_method(rb_cJS_Object, "__import_from_js",
417423
_rb_js_import_from_js, 0);
418-
rb_define_method(rb_cJS_Object, "inspect", _rb_js_obj_inspect, 0);
419-
rb_define_method(rb_cJS_Object, "to_s", _rb_js_obj_inspect, 0);
424+
rb_define_method(rb_cJS_Object, "to_s", _rb_js_obj_to_s, 0);
425+
rb_define_alias(rb_cJS_Object, "inspect", "to_s");
420426
rb_define_singleton_method(rb_cJS_Object, "wrap", _rb_js_obj_wrap, 1);
421427

422428
rb_define_method(rb_cInteger, "to_js", _rb_js_integer_to_js, 0);

packages/npm-packages/ruby-wasm-wasi/test/unit/test_object.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,15 @@ def test_strictly_eql?
5757
end
5858

5959
def test_to_s
60+
assert_equal "str", JS.eval("return 'str';").to_s
6061
assert_equal "24", JS.eval("return 24;").to_s
6162
assert_equal "true", JS.eval("return true;").to_s
6263
assert_equal "null", JS.eval("return null;").to_s
6364
assert_equal "undefined", JS.eval("return undefined;").to_s
6465
end
6566

6667
def test_inspect
68+
assert_equal "str", JS.eval("return 'str';").to_s
6769
assert_equal "24", JS.eval("return 24;").inspect
6870
assert_equal "true", JS.eval("return true;").inspect
6971
assert_equal "null", JS.eval("return null;").inspect

0 commit comments

Comments
 (0)