use std::string::String;
use std::vec::Vec;

// `string`
pub struct JsStrStruct {
    pub text: String,
}

impl JsStrStruct {
    const MAX_STR_LEN: u64 = 9007199254740991; // 2^53 - 1

    pub fn new(s: &str) -> JsStrStruct {
        assert!((s.len() as u64) < JsStrStruct::MAX_STR_LEN);
        JsStrStruct { text: s.to_string(), }
    }
}


use std::string::String;
use std::vec::Vec;
use js_types::js_type::{JsTrait, JsT};

// `undefined`
pub struct JsUndef;
impl JsTrait for JsUndef {}

// `null`
pub struct JsNull;
impl JsTrait for JsNull {}

// `bool`
pub struct JsBool(pub bool);
impl JsTrait for JsBool {}

// `number`
pub struct JsNum(pub f64);
impl JsTrait for JsNum {}

// `symbol`
pub struct JsSym(pub String);
impl JsTrait for JsSym {}

// `array`
pub type JsArr<T> = Vec<T>;
impl<T> JsTrait for JsArr<T> {}

// `string`
pub struct JsStr {
    text: String,
}

impl JsStr {
    const MAX_STR_LEN: u64 = 9007199254740991; // 2^53 - 1

    pub fn new(s: &str) -> JsStr {
        assert!((s.len() as u64) < JsStr::MAX_STR_LEN);
        JsStr { text: s.to_string(), }
    }
}

impl JsTrait for JsStr {}


--- 
+++ 
@@ -1,44 +1,17 @@
 use std::string::String;
 use std::vec::Vec;
-use js_types::js_type::{JsTrait, JsT};
-
-// `undefined`
-pub struct JsUndef;
-impl JsTrait for JsUndef {}
-
-// `null`
-pub struct JsNull;
-impl JsTrait for JsNull {}
-
-// `bool`
-pub struct JsBool(pub bool);
-impl JsTrait for JsBool {}
-
-// `number`
-pub struct JsNum(pub f64);
-impl JsTrait for JsNum {}
-
-// `symbol`
-pub struct JsSym(pub String);
-impl JsTrait for JsSym {}
-
-// `array`
-pub type JsArr<T> = Vec<T>;
-impl<T> JsTrait for JsArr<T> {}
 
 // `string`
-pub struct JsStr {
-    text: String,
+pub struct JsStrStruct {
+    pub text: String,
 }
 
-impl JsStr {
+impl JsStrStruct {
     const MAX_STR_LEN: u64 = 9007199254740991; // 2^53 - 1
 
-    pub fn new(s: &str) -> JsStr {
-        assert!((s.len() as u64) < JsStr::MAX_STR_LEN);
-        JsStr { text: s.to_string(), }
+    pub fn new(s: &str) -> JsStrStruct {
+        assert!((s.len() as u64) < JsStrStruct::MAX_STR_LEN);
+        JsStrStruct { text: s.to_string(), }
     }
 }
 
-impl JsTrait for JsStr {}
-
Rename JsStr to JsStrStruct, among other things
