24 lines
648 B
JavaScript
24 lines
648 B
JavaScript
|
// Copyright 2024 the V8 project authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
//
|
||
|
// Flags: --allow-natives-syntax
|
||
|
|
||
|
function get_iterator(o) {
|
||
|
try {
|
||
|
[a] = o;
|
||
|
return a;
|
||
|
} catch (e) {
|
||
|
return e;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
%PrepareFunctionForOptimization(get_iterator);
|
||
|
const error1 = get_iterator(true);
|
||
|
const error2 = get_iterator(42);
|
||
|
const val1 = get_iterator([17]);
|
||
|
%OptimizeFunctionOnNextCall(get_iterator);
|
||
|
assertEquals(error1.message, get_iterator(true).message);
|
||
|
assertEquals(error2.message, get_iterator(42).message);
|
||
|
assertEquals(val1, get_iterator([17]));
|