everyItem()をよく活用したら、処理スピードが向上しますが(過去記事)、本日では変なバグ(仕様?)に遭遇した。

発生条件:everyItem()方法(元の文字スタイル等が維持できるメリットがある)で文字を追加、かつ、文字流し込み後textFrameが溢れた

var doc = app.activeDocument;
var tfs = doc.textFrames;
var src = tfs.itemByName("src");//段落1a\r段落2b\r段落3c
var dst1 = tfs.itemByName("dst1");
var dst2 = tfs.itemByName("dst2");
//
//
//-----通常の文字追加(プレーンテキストのみで、srcのスタイルを適用)-----
//.parentStory: 溢れを考慮する
dst1.parentStory.insertionPoints[-1].contents = src.contents;
//
//
//
//-----元の文字のスタイルを引き継ぐの場合-----
//文字追加後**溢れが発生しない**(事前に分かれば)場合、everyItem()では問題ない
src.paragraphs.everyItem().duplicate(LocationOptions.AT_END, dst2);//溢れなければOK
src.characters.everyItem().duplicate(LocationOptions.AT_END, dst2);//溢れなければOK

//文字追加後**溢れが発生する**場合
//**ダメ**な例
//段落複製:溢れた段落が逆転:段落1->3->2(溢れた3と2段落が逆転)
src.paragraphs.everyItem().duplicate(LocationOptions.AT_END, dst2);
//文字の複製:溢れた文字が逆転:文字m->m-1->m-2...
src.characters.everyItem().duplicate(LocationOptions.AT_END, dst2);
//
//OKな例
//段落複製:溢れた段落が逆転しない
src.paragraphs.itemByRange(0, -1).duplicate(LocationOptions.AT_END, dst2);
//文字の複製:溢れた文字が逆転しない
src.characters.itemByRange(0, -1).duplicate(LocationOptions.AT_END, dst2);

スクリーンショット: