Отвечает знаток Митя Ломов: По-разному, Дим, в зависимости от размера: http://code.google.com/p/v8/source/browse/branches/bleeding_edge/src/objects.h, line 6063: // The JSArray describes JavaScript Arrays // Such an array can be in one of two modes: // - fast, backing storage is a FixedArray and length <= elements.length(); // Please note: push and pop can be used to grow and shrink the array. // - slow, backing storage is a HashTable with numbers as keys. class JSArray: public JSObject { }
elements это такая шняга, которая у всех Джаваскриптных объектов есть и держит проперти, которые числами индексируются
Comments 6
btw ты случайно не знаешь как сделаны массивы в v8? скажем доступ по индексу это реально доступ по индексу или там какая-нибудь мапа?
Reply
По-разному, Дим, в зависимости от размера:
http://code.google.com/p/v8/source/browse/branches/bleeding_edge/src/objects.h, line 6063:
// The JSArray describes JavaScript Arrays
// Such an array can be in one of two modes:
// - fast, backing storage is a FixedArray and length <= elements.length();
// Please note: push and pop can be used to grow and shrink the array.
// - slow, backing storage is a HashTable with numbers as keys.
class JSArray: public JSObject { }
elements это такая шняга, которая у всех Джаваскриптных объектов есть и держит проперти, которые числами индексируются
Reply
unrelated: а есть какие то технические причины держать это все в одном хедере на 6K строк или это просто такой эээ... стиль?
Reply
мапа унаследована от объекта,
про другие переходы не в курсе пока :)
unrelated: Инлайны делаются при компиляции, поэтому все мелкие функции размещаются в заголовочных файлах.
Reply
Reply
Reply
Leave a comment