--- f is not callable --- Exception: TypeError : noncallable.apply is not a function. (In 'noncallable.apply()', 'noncallable.apply' is an instance of Object) Exception: TypeError : noncallable.apply is not a function. (In 'noncallable.apply({}, [1, 2, 3])', 'noncallable.apply' is an instance of Object) --- f.apply(x) --- Called with this: object[[object Object]], args: [] --- f.apply(x, null), f.apply(x, undefined) --- Called with this: object[[object Object]], args: [] Called with this: object[[object Object]], args: [] --- f.apply(x, 123), f.apply(x, 'string'), f.apply(x, true) --- Exception: TypeError : second argument to Function.prototype.apply must be an Array-like object (evaluating 'dump_args.apply(o, 123)') Exception: TypeError : second argument to Function.prototype.apply must be an Array-like object (evaluating 'dump_args.apply(o, 'string')') Exception: TypeError : second argument to Function.prototype.apply must be an Array-like object (evaluating 'dump_args.apply(o, true)') --- f.apply(x, obj), obj.length is null/undefined/NaN/string/OutOfRange --- Called with this: object[[object Object]], args: [] Called with this: object[[object Object]], args: [] Called with this: object[[object Object]], args: [] Called with this: object[[object Object]], args: [] Exception: RangeError : Maximum call stack size exceeded. Called with this: object[[object Object]], args: [] --- f.apply(x, arr), arr.length is huge --- Exception: RangeError : Maximum call stack size exceeded. --- f.apply(x, obj), obj.length is huge --- Exception: RangeError : Maximum call stack size exceeded. --- f.apply(x, arr) --- Called with this: object[[object Object]], args: [] Called with this: object[[object Object]], args: [1] Called with this: object[[object Object]], args: [2, 3, NaN, null, undefined, false, hello, [object Object]] --- f.apply(x, arr) arr.length increased --- Called with this: object[[object Object]], args: [1, 2, undefined, undefined, undefined] --- f.apply(x, arguments) --- Called with this: object[[object Object]], args: [] Called with this: object[[object Object]], args: [1] Called with this: object[[object Object]], args: [2, 3, NaN, null, undefined, false, hello, [object Object]] --- f.apply(x, obj) --- Called with this: object[[object Object]], args: [] Called with this: object[[object Object]], args: [1] Called with this: object[[object Object]], args: [2, 3, NaN, null, undefined, false, hello, [object Object]] --- f.apply(), f.apply(null), f.apply(undefined), global x1 should be changed --- global x1 : hello global x1 : hello global x1 : hello --- f.apply(x), global x1 should NOT be changed --- global x1 : 0 o.x1 : hello --- f.apply(v), v is missing/null/undefined/123/true/'string' --- Called with this: object[[object global]], args: [] Called with this: object[[object global]], args: [] Called with this: object[[object global]], args: [] Called with this: object[123], args: [] Called with this: object[true], args: [] Called with this: object[string], args: [] --- f.apply(v), v is missing/null/undefined/123/true/'string', f: string.charCodeAt --- Exception: TypeError : Type error Exception: TypeError : Type error Exception: TypeError : Type error 49 116 115 --- f.apply(v), v is missing/null/undefined/123/true/'string', f: string.charAt --- Exception: TypeError : Type error Exception: TypeError : Type error Exception: TypeError : Type error 1 t s --- f.call(v), v is missing/null/undefined/123/true/'string' --- Called with this: object[[object global]], args: [] Called with this: object[[object global]], args: [] Called with this: object[[object global]], args: [] Called with this: object[123], args: [] Called with this: object[true], args: [] Called with this: object[string], args: [] --- f.call(v), v is missing/null/undefined/123/true/'string', f: string.charCodeAt --- Exception: TypeError : Type error Exception: TypeError : Type error Exception: TypeError : Type error 49 116 115 --- f.call(v), v is missing/null/undefined/123/true/'string', f: string.charAt --- Exception: TypeError : Type error Exception: TypeError : Type error Exception: TypeError : Type error 1 t s