LCOV - app.info - js/src/vm/ObjectImpl.cpp

LCOV - code coverage report
| Current view: | directory - js/src/vm - ObjectImpl.cpp (source / functions) |  | Found | Hit | Coverage |
| Test: | app.info | Lines: | 14 | 14 | 100.0 %
| Date: | 2012-06-02 | Functions: | 5 | 4 | 80.0 %

           1                 : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
           2                 :  * vim: set ts=8 sw=4 et tw=78:
           3                 :  *
           4                 :  * This Source Code Form is subject to the terms of the Mozilla Public
           5                 :  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
           6                 :  * You can obtain one at http://mozilla.org/MPL/2.0/. */
           7                 :
           8                 : #include "mozilla/Assertions.h"
           9                 : #include "mozilla/Attributes.h"
          10                 :
          11                 : #include "jsscope.h"
          12                 : #include "jsobjinlines.h"
          13                 :
          14                 : #include "ObjectImpl.h"
          15                 :
          16                 : #include "ObjectImpl-inl.h"
          17                 :
          18                 : using namespace js;
          19                 :
          20           19870 : static ObjectElements emptyElementsHeader(0, 0);
          21                 :
          22                 : /* Objects with no elements share one empty set of elements. */
          23                 : HeapSlot *js::emptyObjectElements =
          24                 :     reinterpret_cast<HeapSlot *>(uintptr_t(&emptyElementsHeader) + sizeof(ObjectElements));
          25                 :
          26                 : #if defined(_MSC_VER) && _MSC_VER >= 1500
          27                 : /*
          28                 :  * Work around a compiler bug in MSVC9 and above, where inlining this function
          29                 :  * causes stack pointer offsets to go awry and spp to refer to something higher
          30                 :  * up the stack.
          31                 :  */
          32                 : MOZ_NEVER_INLINE
          33                 : #endif
          34                 : const Shape *
          35       217061661 : js::ObjectImpl::nativeLookup(JSContext *cx, jsid id)
          36                 : {
          37       217061661 :     MOZ_ASSERT(isNative());
          38                 :     Shape **spp;
          39       217061661 :     return Shape::search(cx, lastProperty(), id, &spp);
          40                 : }
          41                 :
          42                 : void
          43         3334743 : js::ObjectImpl::markChildren(JSTracer *trc)
          44                 : {
          45         3334743 :     MarkTypeObject(trc, &type_, "type");
          46                 :
          47         3334743 :     MarkShape(trc, &shape_, "shape");
          48                 :
          49         3334743 :     Class *clasp = shape_->getObjectClass();
          50         3334743 :     JSObject *obj = asObjectPtr();
          51         3334743 :     if (clasp->trace)
          52         2840913 :         clasp->trace(trc, obj);
          53                 :
          54         3334743 :     if (shape_->isNative())
          55         3283626 :         MarkObjectSlots(trc, obj, 0, obj->slotSpan());
          56         3394353 : }

Generated by: LCOV version 1.7