A macro for interning JavaScript primitives.
Stores one copy of each distinct JavaScript primitive.
For example, ```js_intern!("string")``` evaluates to a ```&JsValue``` but uses only one heap allocation
and a one-time translation from the utf-8 Rust string to the utf-16 JavaScript string the first time the expression is evaluated.
Furthermore, values are de-duplicated across the program.
So, any time ```js_intern!(1.0)``` is used in the program, the same instance of the JavaScript number is used.
# Supported types
* ```&'static str``` Eg: ```js_intern!("str")```
* ```f64```, ```f32``` ```u8```, ```u16```, ```u32```, ```i8```, ```i16```, ```i32``` Eg: ```js_intern(1.0)```
* ```bool``` Eg: ```js_intern(true)```
# Related
If you like this, you may like these other crates by Zac Burns (That3Percent)
* [js-object](https://github.com/That3Percent/js-object) A macro for creating JavaScript objects
* [soa-vec](https://github.com/That3Percent/soa-vec) A struct of arrays layout with a Vec of tuple API
* [second-stack](https://github.com/That3Percent/second-stack) A Rust memory allocator for large slices that don't escape the stack.