diff options
author | Mike Pennisi <mike@mikepennisi.com> | 2016-04-18 13:19:58 -0400 |
---|---|---|
committer | Mike Pennisi <mike@mikepennisi.com> | 2016-05-10 11:51:44 -0400 |
commit | cc7381d3b22fab3c5c4f6eff1ece7207ba1dca33 (patch) | |
tree | e9e0b09f79b026780dae743d0be1574e44e12231 /src/dstr-binding/obj-ptrn-prop-id-init-skipped.case | |
parent | be195c38ca216170205ef1e46581c59596fd0420 (diff) |
Add test cases for destructuring binding
Diffstat (limited to 'src/dstr-binding/obj-ptrn-prop-id-init-skipped.case')
-rw-r--r-- | src/dstr-binding/obj-ptrn-prop-id-init-skipped.case | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/dstr-binding/obj-ptrn-prop-id-init-skipped.case b/src/dstr-binding/obj-ptrn-prop-id-init-skipped.case new file mode 100644 index 000000000..49ec6684f --- /dev/null +++ b/src/dstr-binding/obj-ptrn-prop-id-init-skipped.case @@ -0,0 +1,43 @@ +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +desc: Destructuring initializer is not evaluated when value is not `undefined` +template: default +info: | + 13.3.3.7 Runtime Semantics: KeyedBindingInitialization + + BindingElement : BindingPattern Initializeropt + + [...] + 3. If Initializer is present and v is undefined, then + [...] +---*/ + +//- setup +var initCount = 0; +function counter() { + initCount += 1; +} +//- elems +{ s: t = counter(), u: v = counter(), w: x = counter(), y: z = counter() } +//- vals +{ s: null, u: 0, w: false, y: '' } +//- body +assert.sameValue(t, null); +assert.sameValue(v, 0); +assert.sameValue(x, false); +assert.sameValue(z, ''); +assert.sameValue(initCount, 0); + +assert.throws(ReferenceError, function() { + s; +}); +assert.throws(ReferenceError, function() { + u; +}); +assert.throws(ReferenceError, function() { + w; +}); +assert.throws(ReferenceError, function() { + y; +}); |