libraries/v8/runtime.cc
// Return property without being observable by accessors or interceptors.
Return property without being observable by accessors or interceptors.
Return property without being observable by accessors or interceptors .
RUNTIME_FUNCTION(MaybeObject*, Runtime_GetDataProperty) {
  SealHandleScope shs(isolate);
  ASSERT(args.length() == 2);
  CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0);
  CONVERT_ARG_HANDLE_CHECKED(Name, key, 1);
  LookupResult lookup(isolate);
  object->LookupRealNamedProperty(*key, &lookup);
  if (!lookup.IsFound()) return isolate->heap()->undefined_value();
  switch (lookup.type()) {
    case NORMAL:
      return lookup.holder()->GetNormalizedProperty(&lookup);
    case FIELD:
      return lookup.holder()->FastPropertyAt(
          lookup.representation(),
          lookup.GetFieldIndex().field_index());
    case CONSTANT:
      return lookup.GetConstant();
    case CALLBACKS:
    case HANDLER:
    case INTERCEPTOR:
    case TRANSITION:
      return isolate->heap()->undefined_value();
    case NONEXISTENT:
      UNREACHABLE();
  }
  return isolate->heap()->undefined_value();
}
RUNTIME_FUNCTION ( MaybeObject * , Runtime_GetDataProperty ) { SealHandleScope shs ( isolate ) ; ASSERT ( args . length ( ) == 2 ) ; CONVERT_ARG_HANDLE_CHECKED ( JSObject , object , 0 ) ; CONVERT_ARG_HANDLE_CHECKED ( Name , key , 1 ) ; LookupResult lookup ( isolate ) ; object -> LookupRealNamedProperty ( * key , & lookup ) ; if ( ! lookup . IsFound ( ) ) return isolate -> heap ( ) -> undefined_value ( ) ; switch ( lookup . type ( ) ) { case NORMAL : return lookup . holder ( ) -> GetNormalizedProperty ( & lookup ) ; case FIELD : return lookup . holder ( ) -> FastPropertyAt ( lookup . representation ( ) , lookup . GetFieldIndex ( ) . field_index ( ) ) ; case CONSTANT : return lookup . GetConstant ( ) ; case CALLBACKS : case HANDLER : case INTERCEPTOR : case TRANSITION : return isolate -> heap ( ) -> undefined_value ( ) ; case NONEXISTENT : UNREACHABLE ( ) ; } return isolate -> heap ( ) -> undefined_value ( ) ; }
Return property without being observable by accessors or interceptors.
Return property without being observable by accessors or interceptors .