* Add tests for cyclic conversions
* Add another test for a non-cyclic scenario
* Refactor the existing RecursionLimiter type
We can use the existing RecursionLimiter type
used by GcObject's Debug impl for this purpose.
We just need to refactor it to allow both liveness
and visitation tracking, using a HashMap of ptrs
to states instead of a HashSet of ptrs.
* Fix `Value::to_json` to not overflow.
Use the newly refactored RecursionLimiter to
check for recursion, and limit it. Throw a TypeError
as mandated by the spec.
* Fix ordinary_to_primitive to not overflow
Use the new RecursionLimiter type to prevent
overflows from conversions in ordinary_to_primitive.
The spec doesn't say what to do here, so we follow
v8 / SpiderMonkey in returning a default value for
the type hint -- either 0. or "". More details in
the method documentation.
* Move ordinary_to_primitive to GcObject
* Move object_to_json to GcObject
* Add test for console.log
* Refactor: Error constructors to return instead of "throwing"
* Test: Add a test case for Error Objects in Object.prototype.toString
* Fix: Make Error.prototype.toString spec compliant
* Test: Add tests for Error.prototype.toString
* Fix 0 arity panic in JSON.parse()
* Requested changes
* Throw syntax error instead of a string error
* Add a test to assert JSON.parse() throws a syntax error
- Add BuiltIn trait
- Add ConstructorBuilder
- Add ObjectInitializer
- Cache core standard objects
- More efficient ConstructorBuilder::build()
- Allow to specify which prototype to inherit
- Refactor object property insertion
- Made ClassBuilder use ConstructorBuilder
- Make ConstructorBuilder::build() return GcObject
- Implement Debug for ClassBuilder and ConstructorBuilder
- Make ClassBuilder methods return &mut Self
- Make ObjectBuilder::build() return a GcObject
- Fixed global objects/properies attributes
- Fixed function prototype and attributes
- doc cached standard objects
- Set error object types to inherit from `Error.prototype`
- Added FunctionBuilder
- Add #[inline]
* Initial implementation of for...of loop
* Initial implementation of for...of loop
* Extend for...of to support var, let, and const lhs
* Use cached well known symbols
* Nest use statements
* Nest use statements
* Add tests.
* Initial implementation of for...of loop
* Extend for...of to support var, let, and const lhs
* Use cached well known symbols
* Nest use statements
* Nest use statements
* Add tests.
* Add tests, cache iterator prototypes, pull common iterator functions out into their own file to allow for repeated use.
* Initial implementation of for...of loop
* Extend for...of to support var, let, and const lhs
* Use cached well known symbols
* Nest use statements
* Nest use statements
* Add tests.
* Add tests, cache iterator prototypes, pull common iterator functions out into their own file to allow for repeated use.
* Initial implementation of for...of loop
* Extend for...of to support var, let, and const lhs
* Use cached well known symbols
* Initial implementation of for...of loop
* Nest use statements
* Add string iterator
* Clean up merge
* Use ctx.global_iterator()
* Merge upstream
* Use u32 as array next index
* Use into
* Use boa::Result
* Tidy up use statement
* Tidy up use statement
Test: Add testing of Object.toString(), need update once
Function.prototype.call is implemented
* not fully because Arguments Exotic Objects are not yet implemented
was blocked due to incompatibilities with `critcmp`, however,
`critcmp` has released v0.1.4 and so `critcmp` is no longer functional
with older versions of criterion. This may require criterion compare
action modification