From 2cc4f87e6c05c9d5e145106ea47ffdcb96496ef5 Mon Sep 17 00:00:00 2001 From: toidiu Date: Sat, 16 Sep 2017 18:34:01 -0400 Subject: [PATCH 1/4] debugging and exploring the repo. --- components/script/dom/bindings/codegen/CodegenRust.py | 4 +++- components/script/dom/bindings/conversions.rs | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 7f97868a3788..971067820e47 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -4750,7 +4750,9 @@ def __init__(self, descriptor, name): def define(self): # Our first argument is the id we're getting. argName = self.arguments[0].identifier.name - return ("let %s = string_jsid_to_string(cx, id);\n" + return ("println!(\"==========-o-o-o1 {:?}\", id);\n" + "match " + "let %s = string_jsid_to_string(cx, id);\n" "let this = UnwrapProxy(proxy);\n" "let this = &*this;\n" % argName + CGProxySpecialOperation.define(self)) diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs index 9afae9f68046..0a2a5823bfcd 100644 --- a/components/script/dom/bindings/conversions.rs +++ b/components/script/dom/bindings/conversions.rs @@ -141,6 +141,7 @@ impl FromJSValConvertible for RootedTrac /// Panics if `id` is not string-valued. pub fn string_jsid_to_string(cx: *mut JSContext, id: HandleId) -> DOMString { unsafe { + println!("{:?}", id); assert!(RUST_JSID_IS_STRING(id)); jsstring_to_str(cx, RUST_JSID_TO_STRING(id)) } From aa726315302695a859d6829f02cca7a3a61e40ee Mon Sep 17 00:00:00 2001 From: toidiu Date: Sat, 16 Sep 2017 18:36:01 -0400 Subject: [PATCH 2/4] remove unnecessary print statement --- components/script/dom/bindings/conversions.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs index 0a2a5823bfcd..9afae9f68046 100644 --- a/components/script/dom/bindings/conversions.rs +++ b/components/script/dom/bindings/conversions.rs @@ -141,7 +141,6 @@ impl FromJSValConvertible for RootedTrac /// Panics if `id` is not string-valued. pub fn string_jsid_to_string(cx: *mut JSContext, id: HandleId) -> DOMString { unsafe { - println!("{:?}", id); assert!(RUST_JSID_IS_STRING(id)); jsstring_to_str(cx, RUST_JSID_TO_STRING(id)) } From 6f7bdee132de0a113a60379ce8ef3d7add667850 Mon Sep 17 00:00:00 2001 From: toidiu Date: Sun, 17 Sep 2017 17:15:51 -0400 Subject: [PATCH 3/4] proceed with debugging --- .../script/dom/bindings/codegen/CodegenRust.py | 14 ++++++++++++-- components/script/dom/bindings/conversions.rs | 2 ++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 971067820e47..073fd341abe7 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -4750,13 +4750,22 @@ def __init__(self, descriptor, name): def define(self): # Our first argument is the id we're getting. argName = self.arguments[0].identifier.name - return ("println!(\"==========-o-o-o1 {:?}\", id);\n" - "match " + return ("println!(\"===DEBUG-o-o-o-7 {:?}\", jsid_to_string(cx, id) );\n" + "if jsid_to_string(cx, id).is_none() {\n" + " return false\n" + "}\n" "let %s = string_jsid_to_string(cx, id);\n" "let this = UnwrapProxy(proxy);\n" "let this = &*this;\n" % argName + CGProxySpecialOperation.define(self)) +# "//let mut this;\n" +# "//let mut %s;\n" +# "//match jsid_to_string(cx, id) {\n" +# "// None => return false,\n" +# "// Some(str_name) => {\n" +# " },\n" +# "//}\n" % argName + class CGProxyNamedGetter(CGProxyNamedOperation): """ @@ -5724,6 +5733,7 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries 'dom::bindings::conversions::root_from_handlevalue', 'dom::bindings::conversions::root_from_object', 'dom::bindings::conversions::string_jsid_to_string', + 'dom::bindings::conversions::jsid_to_string', 'dom::bindings::codegen::PrototypeList', 'dom::bindings::codegen::RegisterBindings', 'dom::bindings::codegen::UnionTypes', diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs index 9afae9f68046..be692c87f59f 100644 --- a/components/script/dom/bindings/conversions.rs +++ b/components/script/dom/bindings/conversions.rs @@ -141,6 +141,8 @@ impl FromJSValConvertible for RootedTrac /// Panics if `id` is not string-valued. pub fn string_jsid_to_string(cx: *mut JSContext, id: HandleId) -> DOMString { unsafe { + println!("===DEBUG-o-o-o-1 {:?}", jsid_to_string(cx, id) ); + println!("===DEBUG-o-o-o-2 {:?}", jsid_to_string(cx, id).is_some() ); assert!(RUST_JSID_IS_STRING(id)); jsstring_to_str(cx, RUST_JSID_TO_STRING(id)) } From 7ccd2c7eb3c253b809b2f66b6551cb6a3fb162dc Mon Sep 17 00:00:00 2001 From: toidiu Date: Sun, 17 Sep 2017 17:39:10 -0400 Subject: [PATCH 4/4] use RUST_JSID_IS_STRING in if condition. --- components/script/dom/bindings/codegen/CodegenRust.py | 3 +-- components/script/dom/bindings/conversions.rs | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 073fd341abe7..388bcedb66dc 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -4750,8 +4750,7 @@ def __init__(self, descriptor, name): def define(self): # Our first argument is the id we're getting. argName = self.arguments[0].identifier.name - return ("println!(\"===DEBUG-o-o-o-7 {:?}\", jsid_to_string(cx, id) );\n" - "if jsid_to_string(cx, id).is_none() {\n" + return ("if !RUST_JSID_IS_STRING(id) {\n" " return false\n" "}\n" "let %s = string_jsid_to_string(cx, id);\n" diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs index be692c87f59f..9afae9f68046 100644 --- a/components/script/dom/bindings/conversions.rs +++ b/components/script/dom/bindings/conversions.rs @@ -141,8 +141,6 @@ impl FromJSValConvertible for RootedTrac /// Panics if `id` is not string-valued. pub fn string_jsid_to_string(cx: *mut JSContext, id: HandleId) -> DOMString { unsafe { - println!("===DEBUG-o-o-o-1 {:?}", jsid_to_string(cx, id) ); - println!("===DEBUG-o-o-o-2 {:?}", jsid_to_string(cx, id).is_some() ); assert!(RUST_JSID_IS_STRING(id)); jsstring_to_str(cx, RUST_JSID_TO_STRING(id)) }