7.2 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	- 
addition-order-evaluation.js: - not exactly covered, but language/expressions/addition/order-of-evalution.js does it for ToNumber vs ToPrimitive checks
- language/expressions/addition/
- Should check for primitive coercion converting values to primitive to be used before comparing to symbol values
- https://tc39.github.io/ecma262/#sec-addition-operator-plus checks for both operands as their primitive values before ToNumber over Symbol values
- should cover ToPrimitive before ToNumber
 
- 
allow-math-ic-b3-code-duplication.js: - Could add cases for addition expressions with primitive operations returning other objects, not really like this specific test, but from @@toPrimitive, valueOf, and toString calls.
 
- 
apply-second-argument-must-be-array-like.js - Cases should be covered in Function#apply, where the second arg is not an array like value
 
- 
arguments-bizarre-behavior.js - This is partially covered in a different way: needs to check length of arguments after defineProperty, and checking after the function escope, as a returned result. Enumerability might be a point to consider as well (too specific?)
 
- 
arith-*-on-varios-types.js - Test262 needs several tests for the Math methods with type coercions on the given arguments
 
- 
array-*: - Perhaps: add cases of operations on top of proxies object to arrays.
 
- 
set-.js / map-.js / weakmap-set-.js / weakset-.js: - Test static return values for before and after adding an item in an WeakSet.
 
- 
zero-to-string.js: - Number#toString is not checked over literal numbers but number objects only.
 
- 
assign-argument-in-inlined-call.js - No coverage for fn_name.arguments going to inner scopes.
 
- 
assignment-in-function-call-bracket-node.js - Tests obj computer propety names containing expressions that evaluates to null.
 
- Tests obj computer propety names containing expressions that evaluates to 
- 
async-arrow-function-in-class-heritage.js - Tests class heritage failing with arrow functions (no constructor). Might have coverage, not found yet.
 
- 
async-arrow-functions-*.js - No tests checking for lexical arguments/new.target/etc in async arrow functions
- Async arrow functions needs some refactoring
 
- 
inferred-names.js - Needs to add tests for multiple anonymous fn forms, verify the .name property is properly set
- Web Compat fix: https://github.com/Microsoft/ChakraCore/issues/3407
 
- 
builtin-function-is-construct-type-none.js - Add a forEach test with a new.target call
- Extend it to other methods
- 
 "Built-in Function Objects ... Built-in function objects that are not identified as constructors do not implement the Construct internal method unless otherwise specified in the description of a particular function. When a built-in constructor is called as part of a new expression the argumentsList parameter of the invoked Construct internal method provides the values for the built-in constructor's named parameters. Built-in functions that are not constructors do not have a prototype property unless otherwise specified in the description of a particular function." 
- 
builtin-function-length.js - Add length property check for function forms in the language folder
 
- 
computed-accessor.js / computed-accessor-parsing.js - Review the coverage of test/language/computed-property-names
- good to use the test generation tool to create cases to be reused for objects and classes, etc
- should check type coercion as well, using composed objects too
 
- 
completion-value.js - v8: add tests for completion value resolution in try/catch/finally blocks (anything returning -2)
- eval('99; do { -99; try { 42 } catch (e) { -1 } finally { -2; break; -3 }; } while (false);')
- eval('99; do { -99; try { [].x.x } catch (e) { 42; } finally { -2; break; -3 }; } while (false);')
- eval('99; do { -99; try { 42 } catch (e) { -1 } finally { -2; break; -3 }; -77 } while (false);')
- eval('99; do { -99; try { [].x.x } catch (e) { 42; } finally { -2; break; -3 }; -77 } while (false);')
- eval('99; do { -99; try { 42 } catch (e) { -1 } finally { -2; continue; -3 }; } while (false);')
- eval('99; do { -99; try { [].x.x } catch (e) { 42; } finally { -2; continue; -3 }; } while (false);')
- eval('99; do { -99; try { 42 } catch (e) { -1 } finally { -2; continue; -3 }; -77 } while (false);')
- eval('99; do { -99; try { [].x.x } catch (e) { 42; } finally { -2; continue; -3 }; -77 } while (false);')
- expected: 42
- actual: -2
 
- sm cases are already covered
 
- v8: add tests for completion value resolution in try/catch/finally blocks (anything returning -2)
- 
concat-append-one-with-sparse-array.js - Append a small value in a very long array - not any specific part of the specs to check - test is slow but maybe worth considering?
 
- 
create-subclass-structure-may-throw-exception-when-getting-prototype.js - tests are inconsistent in different engines
- verify this on the usage for Reflect.construct
 
- 
custom-iterators.js - it would be interesting to create templates and cases for iteration over objects. Using Symbol.iterator (and Symbol.asyncIterator) in for-of loops, for-of-await loops, Array.from, etc etc etc
- The examples in that test file would be interesting to create iterator like objects
- ChakraCore is apparently reporting of a wrong error constructor
 
- 
custom-prototype-may-be-same-to-original-one.js - Tests that Reflect.constructor can use a custom prototype with the same reference for the original one
 
- 
error-description-on-symbols-should-not-crash.js - Symbols are not callable...
 
- 
exception-in-to-property-key-should-be-handled-early-in-object-methods.js - Review coverage for Object#hasOwnProperty, add coercions for the this value
 
- 
function-caller-*.js - Verify .caller behavior for nested functions, retrieving the function body.
- Results are diverging from JSC (abrupt completion) to other engines (no error)
 
- 
global-environment-does-not-trap-unscopables.js - duplicate language/with/binding-blocked-by-unscopables.jsto assert binding block of the global in inner scopes, deferring references to the local scope.
 
- duplicate 
- 
ignore-promise-species.js - add coverage for Promise.all and race handling a local @@species
 
- add coverage for Promise.all and race handling a local 
- 
modify-set-during-iteration.js - Add coverage for iterating Set/Map/WeakSet/WeakMap objects with values being changed during the iteration. (e.g. for-of loops)
 
- 
module-namespace-access*js - review these tests for import()
 
- 
private-name-as-anonymous-builtin.js - Review name property for the executor functions in Promise.resolve calls
 
- 
regress-187006.js - check if we have coverage for regexp matchsetting array values.
 
- check if we have coverage for regexp 
- 
regress-179634.js - review coverage for Object.defineProperties
 
- 
regress-170732.js - review coverage for valid and invalid await expressions
 
- 
regress-159883.js - review common forms for invalid dates
 
- 
regress-189317.js - AnnexB defineGetter/Setter being used with built-in functions
- cross engine errors
 
- 
string-to-string-error.js / string-value-of-error.js - Needs coverage for the this value in String#toStringandString#valueOf
- Also verify with ordinary objects containing toPrimitive methods.
 
- Needs coverage for the this value in 
- 
reserved-word-with-escape.js - Add coverage for checking reserved names - mostly var- as global variables, using escape sequences.
 
- Add coverage for checking reserved names - mostly