| // Copyright 2016 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: --nostress-opt | 
 |  | 
 | Error.prepareStackTrace = function(exception, frames) { | 
 |   return frames[0].getEvalOrigin(); | 
 | } | 
 |  | 
 | var source = "new Error()"; | 
 | var eval_origin; | 
 | var geval = eval; | 
 | var log = []; | 
 |  | 
 | (function() { | 
 |   log.push([geval(source).stack, "17:13"]); | 
 |   log.push([geval(source).stack, "18:13"]); | 
 |   // log.push([geval(source).stack, "19:13"]);  TODO(4921). | 
 | })(); | 
 |  | 
 | (function() { | 
 |   log.push([eval(source).stack, "23:13"]); | 
 |   log.push([eval(source).stack, "24:13"]); | 
 |   // log.push([eval(source).stack, "25:13"]);  TODO(4921). | 
 | })(); | 
 |  | 
 | log.push([eval(source).stack, "28:11"]); | 
 | log.push([eval(source).stack, "29:11"]); | 
 | // log.push([eval(source).stack, "30:11"]);  TODO(4921). | 
 |  | 
 | Error.prepareStackTrace = undefined; | 
 |  | 
 | for (var item of log) { | 
 |   var stacktraceline = item[0]; | 
 |   var expectation = item[1]; | 
 |   var re = new RegExp(`:${expectation}\\)$`); | 
 |   assertTrue(re.test(stacktraceline)); | 
 | } |