// This file was procedurally generated from the following sources:
// - src/dstr-binding/ary-init-iter-get-err-array-prototype.case
// - src/dstr-binding/error/try.template
/*---
description: Abrupt completion returned by GetIterator (try statement)
esid: sec-runtime-semantics-catchclauseevaluation
features: [Symbol.iterator, destructuring-binding]
flags: [generated]
info: |
Catch : catch ( CatchParameter ) Block
[...]
5. Let status be the result of performing BindingInitialization for
CatchParameter passing thrownValue and catchEnv as arguments.
[...]
Runtime Semantics: BindingInitialization
BindingPattern : ArrayBindingPattern
1. Let iteratorRecord be ? GetIterator(value).
GetIterator ( obj [ , hint [ , method ] ] )
[...]
4. Let iterator be ? Call(method, obj).
Call ( F, V [ , argumentsList ] )
[...]
2. If IsCallable(F) is false, throw a TypeError exception.
---*/
delete Array.prototype[Symbol.iterator];
assert.throws(TypeError, function() {
try {
throw [1, 2, 3];
} catch ([x, y, z]) {}
});