Home | History | Annotate | Download | only in js
      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