1 // Copyright 2013-2015 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 (function(global, utils) { 6 7 'use strict'; 8 9 %CheckIsBootstrapping(); 10 11 // ------------------------------------------------------------------- 12 // Imports 13 14 var GlobalReflect = global.Reflect; 15 var MakeTypeError; 16 var ReflectApply = utils.ImportNow("reflect_apply"); 17 var ReflectConstruct = utils.ImportNow("reflect_construct"); 18 19 utils.Import(function(from) { 20 MakeTypeError = from.MakeTypeError; 21 }); 22 23 // ------------------------------------------------------------------- 24 25 function ReflectEnumerate(obj) { 26 if (!IS_RECEIVER(obj)) 27 throw MakeTypeError(kCalledOnNonObject, "Reflect.enumerate") 28 return (function* () { for (var x in obj) yield x })(); 29 } 30 31 utils.InstallFunctions(GlobalReflect, DONT_ENUM, [ 32 "apply", ReflectApply, 33 "construct", ReflectConstruct, 34 "enumerate", ReflectEnumerate 35 ]); 36 37 }) 38